Android HandlerThread 完全解析
2017-10-18 16:27
435 查看
源码分析:
public class HandlerThread extends Thread {
int mPriority; int mTid = -1; Looper mLooper; public HandlerThread(String name) { super(name); mPriority = Process.THREAD_PRIORITY_DEFAULT; }
总结:里面做了线程优先级的处理,主要是封装了looper,不用自己调用Looper的方法
场景:用于做完一件事,做另外一件事。
列子:用于下载应用,恢复下载的状态,handler.post()运作在工作线程中
private HandlerThread mHandlerThread = new HandlerThread("DownloadManager");
private DownloadManager(Context context) { this.mContext = context.getApplicationContext(); downloadDbHelper = DownloadDbHelper.getInstance(context); ApkHelper.getInstance(mContext).registListener(this); mHandlerThread.start(); mHandler = new Handler(mHandlerThread.getLooper()); }
/** 初始化下载列表 */ public void initDownloadTasks() { mHandler.post(new Runnable() { @Override public void run() { synchronized (TAG) { if (!isInitFinish.get()) { long startTime = System.currentTimeMillis(); List<DownloadTask<BaseFileModel>> all = downloadDbHelper.queryAll(); downloadTasks.clear(); downloadTasks.addAll(all); restoreState(); delFailureTimeTask(); isInitFinish.set(true); CXLog.d(TAG, "use time---->" + (System.currentTimeMillis() - startTime)); CXLog.d(TAG, "download size--->" + downloadTasks.size()); //更多页面的游戏插件预下载 // downLoadGameAppAll(mContext, instance); } } } }); }
相关文章推荐
- Android HandlerThread 完全解析
- Android HandlerThread 完全解析
- Android HandlerThread 完全解析
- Android HandlerThread 完全解析
- Android HandlerThread 完全解析
- Android HandlerThread 完全解析
- 转载: Android HandlerThread 完全解析
- Android HandlerThread 完全解析
- Android之HandlerThread完全解析
- Android HandlerThread 完全解析
- Android HandlerThread 完全解析
- Android HandlerThread 完全解析
- Android HandlerThread 完全解析
- Android HandlerThread 完全解析
- 深入Android HandlerThread 使用及其源码完全解析
- Android HandlerThread 完全解析
- Android HandlerThread 完全解析
- Android HandlerThread 完全解析
- Android HandlerThread 完全解析
- Android HandlerThread 完全解析