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);     
 -        
 -     new AsyncLoader().execute("aaaa");   
 -     new AsyncLoader().execute("bbbb");   
 -     new AsyncLoader().execute("cccc");   
 -     new AsyncLoader().execute("dddd");   
 -     new AsyncLoader().execute("eeee");   
 -     new AsyncLoader().execute("ffff");   
 -   }   
 -    
 -    
 -      
 -   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);   
 -     }    
 -   }    
 - }