Android 确定哪个活动正在调用AsyncTask
有没有办法找出哪个活动正在调用Android 确定哪个活动正在调用AsyncTask,android,android-asynctask,Android,Android Asynctask,有没有办法找出哪个活动正在调用AsyncTask?我有两个活动在调用它,我想在onPostExecute()中做不同的事情,这取决于调用它的活动 诸如此类: protected void onPostExecute(String result) { //do some stuff with result if (callingActivity == mainActivity) { //do something } else { //do s
AsyncTask
?我有两个活动在调用它,我想在onPostExecute()
中做不同的事情,这取决于调用它的活动
诸如此类:
protected void onPostExecute(String result) {
//do some stuff with result
if (callingActivity == mainActivity) {
//do something
} else {
//do something else
}
}
我们总是有营救的机会。在创建AsyncTask时捕获callingActivity,并在onPostExecute中使用它
比如说,
有两个活动ActivityA和ActivityB。您可以像这样在POST上签入
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
}
}
}
类异步任务{
私人活动a;
公共任务(活动a){
这个a=a;
}
受保护的void onPostExecute(字符串结果){
//做一些有结果的事情
if(活动的实例a){
//做点什么
}else if(活动的实例b){
//做点别的
}
}
}
我们总是有救援的时刻。在创建AsyncTask时捕获callingActivity,并在onPostExecute中使用它
比如说,
有两个活动ActivityA和ActivityB。您可以像这样在POST上签入
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
}
}
}
类异步任务{
私人活动a;
公共任务(活动a){
这个a=a;
}
受保护的void onPostExecute(字符串结果){
//做一些有结果的事情
if(活动的实例a){
//做点什么
}else if(活动的实例b){
//做点别的
}
}
}
让您的活动子类化您的CommonAsyncTask
,覆盖onPostExecute()
:
只需让您的活动子类化您的
CommonAsyncTask
,覆盖onPostExecute()
:
在你的
AsyncTask
子类中添加一个构造函数,并传入一些创建者的标识符。哦,我的天啊,我为自己没有想到这一点而感到羞愧。非常感谢。在你的AsyncTask
子类中添加一个构造函数,并传入一些创建者的标识符。哦,我的天啊,我为自己没有想到这一点而感到羞愧。非常感谢。如果在AsyncTask
中保持对活动的强引用,则有泄漏活动的风险。如果在AsyncTask
中保持对活动的强引用,则有泄漏活动的风险。