/* $Id: $ */ package com.oreilly.demo.android.pa.asynctask; import java.net.URI; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Map; import android.os.AsyncTask; import android.view.View; import android.widget.Button; import org.apache.http.HttpResponse; /** * * @version $Revision: $ * @author <a href="mailto:bmeike@callmeike.net">Blake Meike</a> */ public class AsyncTaskSample { /** * AsyncDBReq */ public class AsyncDBReq extends AsyncTask<PreparedStatement, Void, ResultSet> { /** * @see android.os.AsyncTask#doInBackground(PreparedStatement[]) */ @Override protected ResultSet doInBackground(PreparedStatement... q) { // implementation... return null; } /** * @see android.os.AsyncTask#onPostExecute(java.lang.Object) */ @Override protected void onPostExecute(ResultSet result) { // implementation... } } /** * AsyncContentReq */ public class AsyncContentReq extends AsyncTask<URI, Void, HttpResponse> { /** * @see android.os.AsyncTask#doInBackground(PreparedStatement[]) */ @Override protected HttpResponse doInBackground(URI... req) { // implementation... return null; } /** * @see android.os.AsyncTask#onPostExecute(java.lang.Object) */ @Override protected void onPostExecute(HttpResponse result) { // implementation... } } int mCount; /** * @param button */ public void initButton1( Button button) { mCount = 0; button.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... args) { mCount++; // !!! NOT THREAD SAFE! return null; } }.execute(); } }); } /** * @param button * @param vals */ public void initButton2( Button button, final Map<String, String> vals) { button.setOnClickListener( new View.OnClickListener() { @SuppressWarnings("unchecked") @Override public void onClick(View v) { new AsyncTask<Map<String, String>, Void, Void>() { @Override protected Void doInBackground( Map<String, String>... params) { // examine the map return null; } }.execute(vals); vals.clear(); // !!! NOT THREAD SAFE! } }); } }