Jedes Mal, wenn Benutzer in Anwendung eingibt, ruft onResume() auf. Wenn der Benutzer im Alarmdialog nicht antwortet, werden die Dialoge nur angehäuft. Ich möchte prüfen, ob der Dialog bereits angezeigt wird.Warnungsdialog, der mehrere Male aufruft
Ich fand große Antworten hier gegeben: Prevent dialog to be opened multiple times when resuming activity und hier How do I show only one Dialog at a time? aber immer war ein Fehler, während der
Warndialog
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() in meinem Code Umsetzung
LocationManager mlocManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
boolean isEnabled = mlocManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
if(!isEnabled) {
showGPSDialog(MapsActivity.this).show();
}