2017-06-23 11 views
0

私はオーディオを分析するアプリケーションを作成しています。ユーザーがオーディオを分析しているアクティビティから離れようとしているときに、テストを続行するかどうかを尋ねるダイアログを作成します。私はこれを行うためにUser Leave Hintを使用していますが、メインページからアクティビティを入力するときにも呼び出され続けます。どうしたらいいですか?現在、私は、ボタンがクリックされたときにのみトーストを作っています。アクティビティ入力時にonUserLeaveHintが呼び出されます

@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(); 
    } 

答えて

1

のAndroidデバイスのホームボタン(onUserLeaveHintを呼び出します())に設計されているので、即座は、あなたが再び開いたときにダイアログがまだそこにあるので、なぜ、力によってデバイスのデスクトップ/ホーム画面にユーザーを取りますアプリ。つまり、アプリからホーム画面に移動する前に、ユーザーと確認するのは良い習慣ではありません。

ただし、アプリを終了する前にユーザーに確認するときは、代わりにonBackPressed()(BACKボタン用)を使用することをおすすめします。

関連する問題