UI线程模型的两条规则:
1、不要阻塞UI线程,否则超过5秒出现ANR(Application Not Responding)应用程序无法响应的错误危险;
2、不要在非UI线程中更新UI,否则直接报错;
解决两条规则之间的矛盾:
1、把主线程请到子线程的家里来:Activity.runOnUiThread(Runnable);
View.post(Runnable);
View.postDelayed(Runnable,long);//long表示时间
2、当子线程有更新UI需要的时候,将需要更新的数据封装到主线程中更新,就是Handler机制;
3、使用异步任务AsyncTask解决问题:编写一个类继承AsyncTask实现doInBackground()方法。
本文介绍UI线程模型的两条核心规则:避免阻塞UI线程与禁止非UI线程更新UI,并提出三种解决方案:通过runOnUiThread、View.post等方法让主线程更新UI,利用Handler机制传递数据至主线程更新UI,以及使用AsyncTask实现异步任务处理。
1295

被折叠的 条评论
为什么被折叠?



