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;
    }

}
原文地址:https://www.cnblogs.com/ct732003684/p/2953103.html