Android 手机卫士--弹出对话框

在《Android 手机卫士--解析json与消息机制发送不同类型消息》一文中,消息机制发送不同类型的信息还没有完全实现,在出现异常的时候,应该弹出吐司提示异常,代码如下:

    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;
            }
        };
    };

因为弹出吐司操作比较常见,于是将其写成工具类进行简单的封装,方便以后调用。

本文地址:http://www.cnblogs.com/wuyudong/p/5902161.html,转载请注明源地址。

于是新建工具类:ToastUtil.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);
    }
}

如果当前版本号<服务器版本号,则出现对话框提示更新

    /**
     * 弹出对话框,提示用户更新
     */
    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()函数在下篇文章中实现

posted @ 2016-09-24 00:36  wuyudong  阅读(804)  评论(0编辑  收藏  举报
Top_arrow