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

Android 学习笔记 线程操作 异步任务 AsyncTask

2020-02-17 02:17 288 查看
这是第一篇个人笔记,留作纪念,哈哈
----------------------------------------------------------------------------
异步任务AsyncTask

最简单使用方法: 新建类,继承 AsyncTask


AsyncTask的三个数说明(三个参数可以是任何类型) 


    第一个:doInBackground()方法的参数类型 
    第二个:onProgressUpdate()方法的参数类型 
    第三个:onPostExecute()方法的参数类型,同时也是doInBackground()方法返回的类型

public class MyAsyncTask extends AsyncTask <Void , Integer , String>
{
protected void onPreExecute ()
{
//开始执行(UI线程中执行)
}

pritected String doInBackground (Void... arg0)
{
//运行期间(新线程)
publishProgress (1);//调用可更新UI,可传递值
return "";
}

protected void onPostExecute (String result)
{
//执行结束(UI线程中执行)
}

protected void onProgressUpdate (Integer... Progress)
{
//被publishProgress调用,一般用于UI更新
}

}

UI线程中

MyAsyncTask myAsyncTask = new MyAsyncTask ();
myAsyncTask .execute();

P.s  4.0以前异步任务不管创建多少个都可以同时执行,到了4.0以后被限制成和Handler一样,一个个来,如果需要同时执行得调用

myAsyncTask .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);


==============================================================================

最后总结一下:


1.创建异步任务必须在 UI 线程

2.不要在异步任务里面手动调用on开头的方法

3.onPreExecute 执行异步任务前 的回调方法 (在UI线程中执行)

4.doInBackground 执行异步任务中 的方法 (在新线程中执行)

5.onPostExecute 执行异步任务后 的回调方法 (在UI线程中执行)

6.onProgressUpdate 更新UI的方法 (在UI线程中执行)只能被 publishProgress 调用


嘿嘿,新手难免有错,如果大神看到帮忙指点一下哟



  • 点赞
  • 收藏
  • 分享
  • 文章举报
Super_Tao 发布了3 篇原创文章 · 获赞 0 · 访问量 1472 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: