当前位置:   article > 正文

AsyncTask解读_public async task

public async task

AsyncTask

AsyncTask是干什么的

由于ui更新对线程的限制,我们无法直接在线程中对ui进行更新,而我们在子线程中进行对ui’线程的通讯或者修改,就得进行线程切换,系统提供了Handler来供我们使用,但是像进度条这种切换频繁的处理起来就比较复杂,AsyncTask对应了这种场景。

相关方法

  • onPreExecute:主线程,执行线程任务前自动调用,通过在这个方法里面进行相应的初始化操作。
  • doInBackground:子线程,必须实现的抽象方法,方法里面为工作线程,可以进行耗时操作。
  • onProgressUpdate:主线程,任务执行时候,获取进度,通过在 doInBackground 方法中调用 publishProgress 来触发
  • publishProgress 这个很重要,用于转发handler到looper
  • onPostExecute :主线程,当任务执行结束后自动调用,可进行UI更新。
public class MyAsyncTask extends AsyncTask<String, Integer, String> {
   
	
    // 耗时操作
    @Override
    protected String doInBackground(String... strings) {
   
        return null;
    }
	
    // 开始之前调用
    @Override
    protected void onPreExecute() {
   
        super.onPreExecute();
    }
	
    // 结束后调用
    @Override
    protected void onPostExecute(String s) {
   
        super.onPostExecute(s);
    }

    // 一般在doInBackground中会多次调用publishProgress通知到此函数
    @Override
    protected void onProgressUpdate(Integer... values) {
   
        super.onProgressUpdate(values);
    }

    // 取消
    @Override
    protected void onCancelled(String s) {
   
        super.onCancelled(s);
    }

    @Override
    protected 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/104606
推荐阅读
相关标签
  

闽ICP备14008679号