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 替换的片段

从Asynctask ONPostExecute调用片段方法

在 Asynctask 的 onPostExecute() 方法中更改片段