首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android,Singleton AsyncTask

Android,Singleton AsyncTask
EN

Stack Overflow用户
提问于 2014-03-25 08:24:17
回答 4查看 4.7K关注 0票数 6

是否有可能定义AsyncTask的单个实例,而不是在每个类中定义?

或者它是为每一项活动分别定义的?

我有4-5个活动,每个活动都有不同的url请求,对于url的响应,我定义了一个单独的类,它具有方法来根据请求解析和填充对象。

编辑:我在上面犯了一个错误。实际上,我是否应该定义一个从AsyncTask扩展的类,或者在需要时在每个活动中定义一个私有类?

对不起,我有点困惑。

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-25 08:26:00

否,因为AsyncTask只能执行一次(如果尝试第二次执行,则会引发异常)。因此,每次要执行AsyncTask时,都必须创建一个新的实例。

票数 7
EN

Stack Overflow用户

发布于 2014-03-25 08:52:13

希望这能帮到你:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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类并使用它,并在不同的地方使用您的结果。

票数 5
EN

Stack Overflow用户

发布于 2014-03-25 08:30:00

我亲爱的朋友,这是可以做到的,但在你的情况下是不推荐的。如果您仍然希望实现它,那么创建一个BaseActivity类来实现AsyncTask并覆盖url函数。只需记住一件事:在切换活动期间,不要忘记关闭,暂停异步任务实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22628908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档