AsyncTask理解- Day36or37

AsyncTask理解- Day36or37

mobile 5.0

1.手机归属地查询 AtoolsActivity

Assets目录特点

  1. 该文件是原生文件,不会对里面的文件进行编码
  2. 该文件只支持读取,并且不在R文件中注册–
  3. 不能加载需要发短信的联系人。

问题堆栈

  1. 郭玲动画博客
  2. 群发2.0 lintView加载联系人
  3. 默写增删改查类。
  4. 命令访问数据库的博客

AsyncTask理解

作用:主要是用来异步消息的处理。主要为了程序员方便从子线程切换主线程中。
参数

  • . Params

在执行AsyncTask时需要传入的参数,可用于在后台任务中使用。

  • . Progress

后台任务执行时,如果需要在界面上显示当前的进度,则使用这里指定的泛型作为进度单位。

  • . Result

当任务执行完毕后,如果需要对结果进行返回,则使用这里指定的泛型作为返回值类型。

需要复习方法

  • onPreExecute()

    在后台任务开始执行前调用

  • doInBackground(Params...)

    后台任务执行方法,主要用来执行查询,比价耗时的任务操作。 其实右面原理就是在后面开启了一个子线程。所以不能操作UI

  • onProgressUpdate(Progress...)

    进度条方法,后台线程会很快的调用个方法,传递过来一些进度。如果我们进度参数给的是Integer的话,就是用整形来计算进度,这里可以操作主线程的UI

  • onPostExecute(Result)

    当子线程执行结束以后,调用的方法。这个方法可以操作UI线程。也就是doInBackground(..)方法。参数就是该方法设置fang

使用
/**
* 异步加载
*/

public void fillData()
{
new AsyncTask<String, Integer, String>()
{
// 程序运行前
@Override
protected void onPreExecute()
{
mLoadProgressBar.setVisibility(View.VISIBLE);
// 显示加载进度
super.onPreExecute();
}

// 程序运行时
@Override
protected String doInBackground(String... params)
{

mBlackNumList = dao.getAllBlackNum();
return null;
}

// 运行后
@Override
protected void onPostExecute(String result)
{
mLoadProgressBar.setVisibility(View.INVISIBLE);
if (result == null)
{
adapter = new BlackNumAdapter();
mBlackNumListView.setAdapter(adapter);
} else
{
adapter.notifyDataSetChanged();
}
}

}.execute();
}

心得

  1. 思考—> 行动
  2. 安静的想。思考许多问题在下手写上代码;
原文地址:https://www.cnblogs.com/ganwei/p/4802468.html