2017-06-23 2 views
0

Ich erstelle eine App, die Audio analysiert. Wenn der Benutzer die Aktivität, in der er den Ton analysiert, verlässt, möchte ich einen Dialog erstellen, um zu fragen, ob der Benutzer den Test fortsetzen möchte oder nicht. Ich benutze einen Hinweis zum Verlassen des Benutzers, aber es wird immer aufgerufen, wenn ich die Aktivität auch von der Hauptseite aus eingebe. Wie kann ich das beheben? Momentan mache ich nur einen Toast, wenn die Knöpfe angeklickt werden.onUserLeaveHint wird bei der Eingabe der Aktivität aufgerufen

@Override 
    protected void onUserLeaveHint() { 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setMessage("Continue running test?"); 
     AlertDialog dialog = builder.create(); 

     builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       int duration = Toast.LENGTH_LONG; 
       Toast play = Toast.makeText(RecordAudio.this, "Continuing test", duration); 
       play.show(); 
       finish(); 
      } 
     }); 

     builder.setNegativeButton("No", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       int duration2 = Toast.LENGTH_SHORT; 
       Toast stop = Toast.makeText(RecordAudio.this, "Ending test", duration2); 
       stop.show(); 
       finish(); 
      } 
     }); 
     builder.show(); 
    } 

Antwort

1

Da ein HOME-Taste Android-Geräts (die onUserLeaveHint() aufruft) auf ausgelegt ist sofort nehmen die Benutzer auf das Desktop/Startbildschirm des Geräts mit Gewalt, also warum der Dialog immer noch da ist, wenn man das wieder öffnen App Dies ist jedoch keine gute Übung, um den Benutzer vor dem Navigieren aus der App zum Startbildschirm zu bestätigen.

Ich würde jedoch empfehlen, Sie verwenden onBackPressed() (für die Schaltfläche ZURÜCK, natürlich), wenn Sie mit dem Benutzer vor dem Verlassen der App zu bestätigen.

Verwandte Themen