ProgressDialog和Handler结合运用显示加载对话框

在程序加载时常需要弹出一个对话框提示用户“正在加载,请稍后…”,而在运行这个对话框的时候主线程也同样需要工作,本文主要介绍在弹出对话框后主线程的动作和对话框收回后主线程的动作,同时这也是ProgressDialog和Handler结合运用的一种典型情况。

1.      声明ProgressDialog和Handler:

publicProgressDialog dialog = null;

public HandlermhandlerReceive;

2.      定义Dialog:

           dialog =ProgressDialog.show(mContext, "请稍等", "正在加载,请稍等....");

           new Thread(){

                    @Override

                    public void run(){

                             //执行请求数据的方法

                             try{

                                       //这里写弹出对话框后执行的动作操作

                                       ……………..

                                       mhandlerReceive.sendEmptyMessage(0);

                                       isShow =true;

                             }

                             catch(Exception e){

                                       e.printStackTrace();

                             }

                    }

           }.start();

3.      定义Handler:

           mhandlerReceive=new Handler(){

                    @Override

                    public voidhandleMessage(Message msg){

                             if(isShow == true)

                             {

                                       dialog.dismiss();

                                       isShow =false;

                             }

                            //这里写对话框消失后要执行的动作

                    }

                    };

4.      技巧提示:注意到我的代码中有一个isShow的boolean型值,这个值的作用是,如果Handler中要执行的操作有初始操作,也就是没有弹出Dialog时也会执行到的时候,就需要isShow这个变量来控制是否需要让Dialog消失了。如果没有这段而直接写dialog.dismiss();则有可能产生空指针的错误。当然在使用时还需要声明变量:public boolean isShow = false;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值