AndroidAsyncTaskHandler更轻量级一些,适用于简单的异步处理。

首先明确Android之所以有HandlerAsyncTask,都是为了不阻塞主线程(UI线程),且UI的更新只能在主线程中完成,因此异步处理是不可避免的。

privateclassMyTastextendsAsyncTask

{

@Override

protectedObjectdoInBackground(Object...params)

{

returnnull;

}

@Override

protectedvoidonPreExecute()

{

super.onPreExecute();

}

@Override

protectedvoidonPostExecute(Objectresult)

{

super.onPostExecute(result);

}

@Override

protectedvoidonProgressUpdate(Object...values)

{

super.onProgressUpdate(values);

}

@Override

protectedvoidonCancelled()

{

super.onCancelled();

}

}


方法解释:

onPreExecute(),该方法将在执行实际的后台操作前被UIthread调用。可以在该方法中做一些准备工作,如在界面上显示一个进度条。


doInBackground(Params...),将在onPreExecute方法执行后马上执行,该方法运行在后台线程中。这里将主要负责执行那些很耗时的后台计算工作。可以调用publishProgress方法来更新实时的任务进度。该方法是抽象方法,子类必须实现。


onProgressUpdate(Progress...),在publishProgress方法被调用后,UIthread将调用这个方法从而在界面上展示任务的进展情况,例如通过一个进度条进行展示。


onPostExecute(Result),在doInBackground执行完成后,onPostExecute方法将被UIthread调用,后台的计算结果将通过该方法传递到UIthread.


使用AsyncTask类,以下是几条必须遵守的准则

1)Task的实例必须在UIthread中创建

2)execute方法必须在UIthread中调用

3)不要手动的调用onPreExecute(),onPostExecute(Result),doInBackground(Params...),onProgressUpdate(Progress...)这几个方法

4)该task只能被执行一次,否则多次调用时将会出现异常


文章连接:http://blog.csdn.net/murongshusheng/article/details/7828042



更多相关文章

  1. Android官方DrawerLayout 抽屉式侧滑菜单-简单使用方法
  2. Android心得4.3--SQLite数据库--execSQL()和rawQuery()方法
  3. Android之ContextMenu的使用方法以及与OptionMenu的区别
  4. Android 摇一摇太灵敏的解决方法
  5. Android中线程同步之Mutex与Condtion的用法
  6. Android加载Html的方法
  7. android window的requestWindowFeature()的使用方法
  8. Android N 7.0中报错:android.os.FileUriExposedException的解决

随机推荐

  1. android 中动画
  2. android 之绘图
  3. Android布局属性
  4. Android嵌套滑动
  5. android studio中support与androidx的新
  6. android利用画布实现环形菜单
  7. Android(安卓)迁移到AndroidX的实现
  8. Android(安卓)slidingmenu详解 优化侧滑
  9. Android设置“android:clickable="false"
  10. 自定义一个dialog没有标题