AsyncTask
Posted nangongyibin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AsyncTask相关的知识,希望对你有一定的参考价值。
①对handler的封装
②使用了线程池 串行线程池 execute方法
并行线程池 executeOnExecutor 并行 系统自带的线程池都是全局的 注意页面退出时要及时取消当前页面没有完成的任务
③ onPreExecute
onPostExecute doInbackground 让代码可读性更好
HandlerThread 带有Looper和消息队列的子线程
HandlerThread thread = new HandlerThread("worker");//创建一个HandlerThread对象 thread.start(); //让run方法运行起来 Handler handler = new Handler(thread.getLooper());//创建子线程Handler handler.post(new Runnable() {//发消息就是发送到子线程里了 @Override public void run() { } }); thread.quit();//退出线程
IntentService
创建一个可以在子线程执行耗时操作的服务 执行完任务之后 这个服务就会自动关闭
public class MyIntentService2 extends IntentService { public MyIntentService2() { super("MyIntentService2"); } @Override protected void onHandleIntent(Intent intent) { //这个方法会执行在子线程中 执行之后这个服务会关闭 if (intent != null) { } }
?
以上是关于AsyncTask的主要内容,如果未能解决你的问题,请参考以下文章
片段中的 Asynctask 未到达 onPostExecute
在 AsyncTask 中将新的 TextView 设置为片段
AsyncTask 和 FragmentManager 的问题
用 Asynctask 更新 FragmentTransaction 替换的片段