Android开发:AsyncTask异步操作
AsyncTask能够适当地、简单地用于 UI线程。这个类准许执行后台操作,让那些没有熟练操作线程的操作者在 UI线程上发布结果。
异步任务的定义是一个在后台线程上运行,其结果是在 UI线程上发表的计算。、
异步任务被定义成三种一般类型: Params, Progress和 Result;
四步: begin , doInBackground , processProgress和end.
自己写的练习
- import Android.app.Activity;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.util.Log;
- protected void onCreate(Bundle savedInstanceState) {
- super .onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //AsyncTask.execute()要在主线程里调用 ,新建了一堆线程,写这么多是为了便于查看效果
- new AsyncLoader().execute("aaaa");
- new AsyncLoader().execute("bbbb");
- new AsyncLoader().execute("cccc");
- new AsyncLoader().execute("dddd");
- new AsyncLoader().execute("eeee");
- new AsyncLoader().execute("ffff");
- }
- //AsyncTask
- class AsyncLoader extends AsyncTask<String, Integer, Integer>{
- @Override
- protected Integer doInBackground(String... arg0) {
- Log.i("AsyncLoader", "doInBackground:"+arg0[0]);
- for (int i = 0; i < 2; i++) {
- publishProgress(i);//发送更新进度消息
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- return 0;
- }
- @Override
- protected void onCancelled() {
- Log.i("AsyncLoader", "onCancelled");
- super.onCancelled();
- }
- @Override
- protected void onPostExecute(Integer result) {
- Log.i("AsyncLoader", "onPostExecute:result="+result);
- super.onPostExecute(result);
- }
- @Override
- protected void onProgressUpdate(Integer... values) {
- //打印进度
- Log.i("AsyncLoader", "progress:"+ values[0]);
- super.onProgressUpdate(values);
- }
- }
- }
相关推荐
dxyadc 2019-12-24
Miryou 2013-07-04
omguare 2011-08-11
luoj 2011-05-24
老菜鸟自习室 2011-05-23
ustcrding 2011-04-23
TTHHVV 2011-09-28
TTHHVV 2011-09-17
Helene 2011-09-17
ustcrding 2011-09-17
best0power 2015-03-16
椎锋陷陈 2012-06-07
Android进阶 2019-06-26
猫耳山在天边 2019-06-26
wxuande 2019-06-21
AndroidGA 2017-03-20
housezhu 2015-03-16
西木 2015-03-05
ANDROIDWangWeiDa 2015-02-13