每次用戶進入應用程序時,onResume()都在呼叫。如果用戶在警報對話框中沒有響應,則對話框只會累積。我想檢查是否已顯示對話框。警報對話多次呼叫
我發現這裏給予了極大的答案:Prevent dialog to be opened multiple times when resuming activity這裏How do I show only one Dialog at a time?但總是被一些錯誤而實施,在我的代碼
警報對話框
private AlertDialog.Builder showGPSDialog(Context con) {
AlertDialog.Builder builder = new AlertDialog.Builder(con);
builder.setTitle("Enable GPS");
builder.setMessage("Please enable GPS");
builder.setPositiveButton("Enable", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startActivity(
new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}
});
builder.setNegativeButton("Ignore", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
return builder;
}
的onResume()
LocationManager mlocManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
boolean isEnabled = mlocManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
if(!isEnabled) {
showGPSDialog(MapsActivity.this).show();
}