Android异步任务

引言

在android的线程中要求,不能在子线程中修改布局,否则会出现异常。在应对这种情况上,可以采用handler或者异步任务来实现。现在,就简单的说一下,关于AsyncTask异步任务。

AsyncTask

AsyncTask对象中有三个参数AsyncTask<Params, Progress, Result>

  • Params:UI线程传过来的参数类型
  • Progress:发布进程类型
  • Result:返回结果的类型,耗时操作doInBackground的返回结果传给执行之后的参数类型
执行流程
  • onPreExecute():执行耗时操作之前处理UI线程(可控制UI),即初始化操作
  • doInBackground():执行耗时操作(在后台中运行)调用
  • publishProgress():执行操作中,发布进度后(可控制UI)
  • onPostExecute():执行耗时操作之后处理UI线程事件(可控制UI),即收尾操作
使用流程

–>class MyAsyncTask extends AsyncTask<Void, Integer, String>


–>protected void onPreExecute(


–>protected String doInBackground(Void… params)
{
publishProgress(i * 10)

}

–>protected void onProgressUpdate(Integer… values)
{
values[0] //每次更新值

}

–>protected void onPostExecute(String result)


注意事项

  • 在异步任务中,不能进行多任务,否则会出现异常问题,所以最好是进行一个的运行,不要进行多运行
  • 在异步创建好之后别忘记进行asyncTask.execute()//可以通过此处传递参数给AsyncTask方法,该方法只能在UI线程里使用,否则异步是不会进行运行的。如果在定义的时候需要输入值的话,在此是需要输入你要输入的值的。

开始惯例啦!!!

Hello Word!开发人员的第一个Demo

这个blog简称没营养,作为测试的blog

从这个开始之后呢,会陆续记录我开发过程中的问题

可以称之为日志,也可以称之为bug记录。希望能带来一些不一样的东西

技术是需要互补的,没一个人能在没有任何帮助下自己发展起来的

希望此可以作为今后的怀念