做过Android开发的都碰到过"程序无响应,是否强制关闭"这类UI假死或提示强制关闭的问题,这就是在UI线程中处理了耗时的操作,超过了5s,Android处理耗时操作经常会出现这种情况。可以通过ProgressDialog和Thread结合处理耗时操作,将耗时的操作从UI线程中移到一个新的线程中,这样就不会阻塞UI线程。
public class ProgressDialogTest extends Activity{ ProgressDialog progressDialog=null; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); progressDialog=ProgressDialog.show(this,"Title","Content",true); thread.start(); } final Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { progressDialog.dismiss(); super.handleMessage(msg); } }; Thread thread=new Thread(){ public void run() { //这里处理耗时操作,比如文件下载等等 try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } handler.sendEmptyMessage(0); }; }; }