您的位置:首页 > 移动开发 > Android开发

Android合理使用AsyncTask和Thread

2013-11-22 11:16 211 查看
AsyncTask大概是Android开发人员最常用的线程类了, 使用方便, 可以更新UI. 但是过度使用、不合理的使用会出现"创建的AsyncTask不会执行的情况", 调试的时候会发现AsyncTask已经创建, 但是不会执行 #doInBackground 方法.

为什么?

因为AsyncTask存在一个线程池的机制, 大概容量是128, 同时运行的只能是5个, 剩下的需要排队等候.

所以如果在开发中过度的使用耗时太久的AsyncTask, 就会出现有的AsyncTask不会立即执行的情况.

这时候, 并不是所有的耗时任务都使用AsyncTask, 如果不需要更新UI, 可以使用Thread(示例代码如下). 或者使用Thread + Handler 更新UI.

new Thread(new Runnable() {
@Override
public void run() {

}
}).start();


另外, 直接使用 new Runnable()是不行的, 因为Runnable运行在UI线程里, 还是会造成UI线程阻塞.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: