是否有可能定义AsyncTask的单个实例,而不是在每个类中定义?
或者它是为每一项活动分别定义的?
我有4-5个活动,每个活动都有不同的url请求,对于url的响应,我定义了一个单独的类,它具有方法来根据请求解析和填充对象。
编辑:我在上面犯了一个错误。实际上,我是否应该定义一个从AsyncTask扩展的类,或者在需要时在每个活动中定义一个私有类?
对不起,我有点困惑。
谢谢。
发布于 2014-03-25 08:26:00
否,因为AsyncTask只能执行一次(如果尝试第二次执行,则会引发异常)。因此,每次要执行AsyncTask时,都必须创建一个新的实例。
发布于 2014-03-25 08:52:13
希望这能帮到你:
public class MyAsynctask extends AsyncTask<String, Integer, Integer> {
@Override
protected Integer doInBackground(String... params) {
int i = 0;
for (int x = 0; x < 500; x++) {
i++;
}
return i;
}
@Override
protected void onPostExecute(Integer result) {
super.onPostExecute(result);
}
}Activity使用Asynctask:
public class MyAsyncUser extends Activity{
int result;
TextView view;
public void onCreate(android.os.Bundle savedInstanceState) {
view = new TextView(this);
new MyAsynctask(){
protected void onPostExecute(Integer result) {
view.setText("" + result);
}
}.execute("what to do");
}
}因此,您可以定义一个Asynctask类并使用它,并在不同的地方使用您的结果。
发布于 2014-03-25 08:30:00
我亲爱的朋友,这是可以做到的,但在你的情况下是不推荐的。如果您仍然希望实现它,那么创建一个BaseActivity类来实现AsyncTask并覆盖url函数。只需记住一件事:在切换活动期间,不要忘记关闭,暂停异步任务实例。
https://stackoverflow.com/questions/22628908
复制相似问题