android-无法停止重新启动AsyncTask

android-无法停止重新启动AsyncTask,第1张

概述请帮忙.我可以重新启动AsyncTask.每当第二次调用updatePoi()时,应用程序都会崩溃.这是我的代码:>我正在检查任务的状态并设置cancel(true).publicvoidupdatePoi(){/ewRefreshMapTask().execute();if(refreshMapTask.getStatus()==AsyncTask.Status.RUNNING|

请帮忙.我可以重新启动AsyncTask.每当第二次调用updatePoi()时,应用程序都会崩溃.

这是我的代码:

>我正在检查任务的状态并设置cancel(true).

public voID updatePoi() {    //new RefreshMapTask().execute();    if (refreshMapTask.getStatus() == AsyncTask.Status.RUNNING ||         refreshMapTask.getStatus() == AsyncTask.Status.PENDING) {            refreshMapTask.cancel(true);        }        refreshMapTask.execute();    }}

>这是我的AsyncTask.在doInBackground我写了一个休息.

private class RefreshMapTask extends AsyncTask<VoID, VoID, VoID> {    @OverrIDe    protected voID onPreExecute() {        super.onPreExecute();        getMapVIEw().getoverlays().clear();        myPoiOverlay.clear();        exitOverlay.clear();    }    @OverrIDe    protected VoID doInBackground(VoID... voIDs) {        Application app = (Application)getApplication();        Log.d(TAG, "exits count = " + app.getExits().size());        GeoPoint pointToNavigate = null;        for (Exit exit : app.getExits()) {            for (Poi poi : exit.getPoi()) {                if (isCancelled()){                    break;                }                //some code here            }        }        //small code here        return null;    }    @OverrIDe    protected voID onPostExecute(VoID aVoID) {        getMapVIEw().invalIDate();    }}

编辑:从评论添加到问题的解决方案

 public voID updatePoi() { //new RefreshMapTask().execute(); if (refreshMapTask.getStatus() == AsyncTask.Status.RUNNING ||     refreshMapTask.getStatus() == AsyncTask.Status.PENDING){     refreshMapTask.cancel(true);    refreshMapTask = new RefreshMapTask();} else {     refreshMapTask = new RefreshMapTask(); } refreshMapTask.execute(); }

解决方法:

一个AsyncTask实例只能被调用一次.要进行第二次呼叫,您需要创建一个新实例.

总结

以上是内存溢出为你收集整理的android-无法停止/重新启动AsyncTask全部内容,希望文章能够帮你解决android-无法停止/重新启动AsyncTask所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1093520.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存