元のクラス内から更新をアクティブにするコールバックとしてデリゲートを含めます。
たとえば、次のインターフェイスを追加します。
public interface AsyncDelegate {
public void asyncComplete(boolean success);
}
次に、呼び出し元のクラスでインターフェイスを実装し、それをタスクに渡します
public class MyClass implements AsyncDelegate {
// Class stuff
MyAsyncTask newTask = new MyAsyncTask(this);
newTask.execute();
public void asyncComplete(boolean success){
myAdapter.notifyDataSetChanged();
}
AsyncTask で、結果を返します。
private class MyAsyncTask extends AsyncTask<Object, Object, Object> {
private AsyncDelegate delegate;
public MyAsyncTask (AsyncDelegate delegate){
this.delegate = delegate;
}
@Override
protected void onPostExecute(String result) {
delegate.asyncComplete(true);
}
}
タスクが完了すると、デリゲートが呼び出され、更新がトリガーされます。