有没有办法找出哪个活动正在调用AsyncTask
?我有两个调用它的活动,我想在onPostExecute()
中执行不同的操作,具体取决于调用它的活动。
类似的东西:
protected void onPostExecute(String result) {
//do some stuff with result
if (callingActivity == mainActivity) {
//do something
} else {
//do something else
}
}
答案 0 :(得分:1)
我们总是有 instanceof 来进行救援。在创建AsyncTask时捕获callingActivity并在onPostExecute中使用它。
例如,
ActivityA和ActivityB有两个活动。您可以登录onPostExecute,如
class AsyncTask<..,..,..> {
private Activity a;
public AsyncTask(Activity a) {
this.a = a;
}
protected void onPostExecute(String result) {
//do some stuff with result
if (a instanceof ActivityA) {
//do something
} else if (a instanceof ActivityB) {
//do something else
}
}
}
答案 1 :(得分:1)
让您的活动继承您的CommonAsyncTask
,覆盖onPostExecute()
:
new CommonAsyncTask() {
@Override
protected void onPostExecute(String result) {
// Execute the common code in `CommonAsyncTask`
super.onPostExecute(result);
// Now execute the code unique to this activity
}
};