在《Android 手機衛士--解析json與消息機制發送不同類型消息》一文中,消息機制發送不同類型的信息還沒有完全實現,在出現異常的時候,應該彈出吐司提示異常,代碼如下:
Java代碼
- private Handler mHandler = new Handler() {
- //
- public void handleMessage(android.os.Message msg) {
- switch (msg.what) {
- case UPDATE_VERSION:
- //彈出對話框,提示用戶更新
- //showUpdateDialog();
- break;
- case ENTER_HOME:
- //進入應用程序主界面,activity跳轉過程
- enterHome();
- break;
- case URL_ERROR:
- ToastUtil.show(getApplicationContext(), "url異常");
- enterHome();
- break;
- case IO_ERROR:
- ToastUtil.show(getApplicationContext(), "讀取異常");
- enterHome();
- break;
- case JSON_ERROR:
- ToastUtil.show(getApplicationContext(), "json解析異常");
- enterHome();
- break;
- default:
- break;
- }
- };
- };
因為彈出吐司操作比較常見,於是將其寫成工具類進行簡單的封裝,方便以後調用。
於是新建工具類:ToastUtil.java
Java代碼
- package com.wuyudong.mobilesafe.Utils;
-
- import android.content.Context;
- import android.widget.Toast;
-
- public class ToastUtil {
- // 打印吐司
-
- /**
- * @param context 上下文環境
- * @param message 打印文本內容
- */
- public static void show(Context context, String message) {
- Toast.makeText(context, message, 0);
- }
- }
如果當前版本號<服務器版本號,則出現對話框提示更新
Java代碼
- /**
- * 彈出對話框,提示用戶更新
- */
- protected void showUpdateDialog() {
- System.out.println("showUpdateDialog");
- //對話框,是依賴於activity存在的
- Builder builder = new AlertDialog.Builder(this);
- //設置左上角圖標
- builder.setIcon(R.drawable.ic_launcher);
- builder.setTitle("版本更新");
- //設置描述內容
- builder.setMessage(mVersionDes);
- //積極按鈕,立即更新
- builder.setPositiveButton("立即更新", new OnClickListener() {
-
- @Override
- public void onClick(DialogInterface dialog, int which) {
- //下載apk,apk鏈接地址,downloadUrl
- downloadApk();
- }
- });
- builder.setNegativeButton("稍後再說", new OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- //取消對話框,進入主界面
- enterHome();
- }
- });
- builder.show();
- }
實現的效果如下:
其中downloadApk()函數在下篇文章中實現