我想创建一个通用的 AsynceTask 类,我的所有活动都使用/共享它来从 url 下载内容。因此,除了将内容发送回调用 AsyncTask 类的活动中的某个方法之外,我不希望 OnPostExecute 执行任何操作。
我知道我需要创建一个构造函数来设置调用 Activity 的上下文AsyncTask
,但是接下来如何使用上下文将某些内容发送回与该上下文对应的活动。我没有看到任何教程显示如何以这种方式使用上下文。
可以说我有:
public class LoginActivity {
public int ActivityMember;
public void HandleButtonClick(void){
DownloadFromURL task = new DownloadFromURL(this);
task.execute(url);
}
public void HandleLoginResult(int x){
ActivityMember = x;
}
}
现在在一个单独的java文件中我有:
private class DownloadFromURL extends AsyncTask<List<NameValuePair>, Long, JSONObject> {
Context context;
public void DownloadFromURL (Context context){
this.context = context;
}
@Override
protected void onPostExecute(JSONObject json) {
context.(<- *my question involves this part of code)
}
}
我很确定我不能调用context.ActivityMember
,或者context.HandleLoginResult(y)
在里面onPostExecute
,因为上下文不是类型LoginActivity
,它是一个上下文。那么如何LoginActivity
使用它的上下文访问属于 的成员或方法呢?