它會工作,但它不是很好。顯然它不靈活,並受到未來的痛苦。
AsyncTask沒什麼特別的,只是一個類。因此,如何讓你的Activity類定義一個監聽器接口,將該監聽器傳遞給你的AsyncTask的構造函數並稍後調用監聽器?
public class MyActivity extends Activity {
public interface AsyncTaskCompleteListener {
public void onComplete(/* any data you want to share */);
}
...
private AsyncTaskCompleteListener myListener = new ...() {
// do stuff with data
}
private MyAsyncTask extends AsyncTask<Something,Something,Something> {
private AsyncTaskCompleteListener listener = null;
public MyAsyncTask(AsyncTaskCompleteListener listener) {
this.listener = listener;
}
protected void onPostExecute(Something result) {
if(listener != null) {
listener.onComplete(/*params*/);
}
}
}
...
}
只是一個想法。
感謝您的簡單建議,我最終採用了類似的方法來彌合兩者之間的差距。 – kurifu 2012-02-13 23:22:24
太棒了!從來沒有這樣做過,總是想知道如何! – wufoo 2013-03-07 19:05:48