我将尝试更好地解释这一点,因为标题不太清楚。
当我启动我的应用程序时,我在我的主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
则会显示。