当我按下后退按钮并打算ACTION_LOCATION_SOURCE_SETTINGS时,保持打开进度对话框

时间:2014-09-10 07:32:55

标签: android android-intent progressdialog

我将尝试更好地解释这一点,因为标题不太清楚。

当我启动我的应用程序时,我在我的主ProgressDialog中显示activity,在我尝试获取用户位置时显示2分钟。我不需要用户启用GPS,因为有时Android可以在没有GPS(wifi,最后知道位置......)的情况下获得用户位置但是当GPS未启用时我会在ProgressDialog上显示一个按钮用户启用它(Settings.ACTION_LOCATION_SOURCE_SETTINGS Intent)。

这就是问题所在。我按下button进入设置以激活GPS,但当我按下后退按钮转到我的activity时,progressdialog不再显示,但它仍在尝试获取用户位置,所以看起来应用程序没有做任何事情,即使它仍然在寻找用户位置。

当我从设置中回来时,是否有可能再次显示dialog?我不想再次启动对话框,我想恢复之前的对话框。这样,它不会再花2分钟来完成它。

这是我的代码:

MyLocationProvider.java:

final ProgressDialog progress = new ProgressDialog(activity);
progress.setMessage("Getting Location");
progress.setIndeterminate(true);
progress.setCancelable(false);
if (!checkGpsEnabled.isProviderEnabled(LocationManager.GPS_PROVIDER)){
    progress.setButton(DialogInterface.BUTTON_NEUTRAL, "Enable GPS", 
        new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {                                                        
                Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                activity.startActivity(intent);
            }
        }
    );
}
progress.show();

我将不胜感激任何帮助。很多。

编辑1

我已经对MainActivity进行了测试,当您从另一个ProgressDialog回来时,Activity似乎仍然会显示:

ProgressDialog pDialog = new ProgressDialog(this);
pDialog.setCancelable(false);
pDialog.show(); 

我已在onCreate上添加了此代码,当我从Settings Activity按下后退按钮时会显示该代码,而来自ProgressDialog消息的MyLocationProvider则会显示。

0 个答案:

没有答案