次のように、独自の onTaskDone インターフェイスを作成できると思います。
public class TaskTest extends AsyncTask<String, Integer, String> {
interface TaskDoneListener {
abstract void onTaskDone(String result);
}
private TaskDoneListener t;
public TaskTest(TaskDoneListener t){
this.t = t;
}
@Override
protected String doInBackground(String... params) {
// do your stuf
return "some thing";
}
@Override
protected void onPostExecute(String result) {
t.onTaskDone(result);
super.onPostExecute(result);
}
}
通知機能と待機機能を使用し、onTaskDone を使用して、結果を待っているある種のスレッドに通知することができます。
編集:
onTaskDone メソッドで次のコードを実行します。
countryCode = mydb.getLatestCode();
Log.e("debug", countryCode);
mydb.close();
編集2:
アクティビティのコード例:
public class TestActivity extends Activity implements TaskDoneListener {
/** Called when the activity is first created. */
TaskTest task;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//create your layout and stuff
}
@Override
protected void onStart() {
super.onStart();
//Dont start you task in the onCreate this could cause some weird behavior
//if the onCreate method is not yet done but your task is.
task = new TaskTest((TaskDoneListener) this, ##country_code?##, ##image?##);
task.execute();
}
public void onTaskDone(String result) {
//set the results in your created views
}
}
ロルフ