原型のAsyncTask
AsyncTaskSample
public class AsyncTaskSample extends AsyncTask<Void, Integer, String> {
//Activiyへのコールバック用interface
public interface AsyncTaskCallback {
void preExecute();
void postExecute(String result);
void progressUpdate(int progress);
void cancel();
}
private AsyncTaskCallback callback = null;;
public AsyncTaskSample(AsyncTaskCallback _callback) {
this.callback = _callback;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
callback.preExecute();
}
@Override
protected void onCancelled() {
super.onCancelled();
callback.cancel();
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
callback.postExecute(result);
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
callback.progressUpdate(values[0]);
}
@Override
protected String doInBackground(Void... params) {
return null;
}
}
(空行)
実装するActivity
Activity
public class SampleActivity {
public void onCreate(Bundle savedInstanceState) {
AsyncTaskSample sampleTask = new AsyncTaskSample(new AsyncTaskCallback() {
public void preExecute() {
//だいたいの場合ダイアログの表示などを行う
}
public void postExecute(String result) {
//AsyncTaskの結果を受け取ってなんかする
}
public void progressUpdate(int progress) {
//だいたいプログレスダイアログを進める
}
public void cancel() {
//キャンセルされた時になんかする
}
});
sampleTask.execute();
}
}
または
Activity
public class SampleActivity implements AsyncTaskCallback {
public void onCreate(Bundle savedInstanceState) {
AsyncTaskSample sampleTask = new AsyncTaskSample(this);
sampleTask.execute();
}
public void preExecute() {
//だいたいの場合ダイアログの表示などを行う
}
public void postExecute(String result) {
//AsyncTaskの結果を受け取ってなんかする
}
public void progressUpdate(int progress) {
//だいたいプログレスダイアログを進める
}
public void cancel() {
//キャンセルされた時になんかする
}
}