Esempio AsyncTask

 

Creare un nuovo progetto android chiamato HelloAsyncTask

 

L'activity principale estende una ListActivity

public class HelloAsyncTaskActivity extends ListActivity {
     ...
}

 

e contiene solo un ArrayAdapter e un elenco di stringhe da caricare

	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
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setListAdapter(
				new ArrayAdapter<String>(
						this,
						android.R.layout.simple_list_item_1, 
						new ArrayList<String>()
				)
			);
		new AddStringTask().execute();
	}

 

La classe AddStringTask che viene lanciata alla fine dell'activity

	class AddStringTask extends AsyncTask<Void, String, Void> {
		@Override
		protected Void doInBackground(Void... unused) {
			for (String item : items) {
				publishProgress(item);
				SystemClock.sleep(200);
			}
			return (null);
		}
 
		@SuppressWarnings("unchecked")
		@Override
		protected void onProgressUpdate(String... item) {
			((ArrayAdapter<String>) getListAdapter()).add(item[0]);
		}
 
		@Override
		protected void onPostExecute(Void unused) {
			Toast.makeText(HelloAsyncTaskActivity.this, "Done!",
					Toast.LENGTH_SHORT).show();
		}
	}

AttachmentSize
HelloAsyncTask.zip44.94 KB