Android - 如何从激活的意图返回后停止异步调用?

时间:2013-07-05 06:38:35

标签: android android-asynctask google-maps-android-api-2

我刚刚玩谷歌地图方向,在我的例子中我只使用列表视图,在该列表视图中从异步调用中获取数据(来自硬编码数据)。列表视图包含地址列表,如果在列表视图中单个地址上的任何一个触摸将在单击列表项后使用以下代码导航到Android手机的Google地图GPS。

Intent i = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?saddr=" + "" + "&daddr=" + saddr));
startActivity(i);

但问题是,在我看到谷歌地图方向后如果我点击后退按钮它返回我的列表视图活动,但异步调用总是运行它不会停止.....如何阻止这一个...我在

中使用progressDialog.dismiss();
protected void onPostExecute(Exception ex) {

        if (progressDialog.isShowing()){
            progressDialog.dismiss();
        }
        if(isCancelled()){
            progressDialog.dismiss();

            }
        }

    }

我也在

中使用
@Override
    protected void onCancelled (){
        progressDialog.dismiss();

    }

我在

中调用progressDialog
protected void onPreExecute() {
        // display progress dialog while data is being loaded       
        progressDialog = ProgressDialog.show(context,    
                "Please wait...", prompt, true);    
    }

请帮帮我......

2 个答案:

答案 0 :(得分:1)

解雇ProgressDialog不会阻止您的AsyncTask。使用public final boolean cancel (boolean mayInterruptIfRunning)方法停止任务。

Android Reference

中的更多信息

答案 1 :(得分:0)

嘿大家谢谢你的回答,我明白了。在protected void onCancelled ()中,我刚刚调用了这种类型......

@Override
    protected void onCancelled (){

        if (progressDialog.isShowing()){
            progressDialog.dismiss();
        }

    }