Async的简单应用
package com.ct.myasync; import java.util.ArrayList; import org.apache.http.conn.ManagedClientConnection; import android.app.ListActivity; import android.os.AsyncTask; import android.os.Bundle; import android.os.SystemClock; import android.util.Log; import android.view.Menu; import android.widget.ArrayAdapter; import android.widget.Toast; public class MainActivity extends ListActivity{ //这里是List Item内容,在这个例子中,将在后台任务中逐个加入 private static String[] items={"lorem", "ipsum", "dolor","sit", "amet", "consectetuer","adipiscing", "elit", "morbi","vel", "ligula", "vitae","arcu", "aliquet", "mollis","etiam", "vel", "erat","placerat", "ante","porttitor", "sodales","pellentesque", "augue","purus"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setListAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,new ArrayList<String>())); new AsyncAddStringTask().execute(); } private class AsyncAddStringTask extends AsyncTask<Void, String, Void>{ private void printInfo(String info){ Log.i("WEI", info + " : Tread is " + Thread.currentThread().getName()); } @Override protected void onPostExecute(Void result) { // TODO Auto-generated method stub printInfo("ct test-------------->onPostExecute "); Toast.makeText(MainActivity.this, "onPostExecute", Toast.LENGTH_LONG).show(); } @Override protected void onPreExecute() { // TODO Auto-generated method stub printInfo("ct test-------------->onPreExecute "); } @Override protected void onProgressUpdate(String... values) { // TODO Auto-generated method stub printInfo("ct test-------------->onProgressUpdate "+values[0]); ((ArrayAdapter<String>)getListAdapter()).add(values[0]); } @Override protected Void doInBackground(Void... params) { // TODO Auto-generated method stub for(String item:items){ publishProgress(item); printInfo("ct test-------------->doInBackground "); SystemClock.sleep(100); } return null; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }