很多初入Android开发的网友表示经常遇到ANR这类的UI假死或提示强制关闭的问题,有的网友可能想到通过创建一个AndroidService的方式来解决耗时操作的假死,但是还有一个简单实用的方法通过创建一个线程而不是服务的方式来解决耗时操作时的假死或等待。
在一个名为test的Activity中,我们通过一个进度条控件ProgressDialog可以处理很多耗时操作。代码如下
final ProgressDialog dialog = ProgressDialog.show(test.this,"标题", "正文", true);
final Handler handler = new Handler(){
public voidhandleMessage(Message msg){
dialog.dismiss(); //关闭progressdialog
}
};
Thread cwjThread = new Thread(){
public void run(){
//这里处理耗时操作,比如文件下载等等。
handler.sendEmptyMessage(0); //告诉handler
}
};
cwjThread.start();