2017-02-17 10 views
1

나는 alertdialog를 통해 내 Android 앱을 종료하는 데 어려움을 겪고 있습니다.Android 앱을 퇴장시킬 수 없음

다시 재생하려면 '예'를 클릭하면 앱이 다시 시작되고 다시 시작됩니다.

불행히도 '아니오'를 클릭하면 대화 상자 경고 상자가 제거되고 이유를 알 수 없습니다.

도움을 주시면 감사하겠습니다.

감사

@Override 
     public void onClick(View v) { 
      AlertDialog.Builder alert = new AlertDialog.Builder(Task1Activity.this); 
      alert.setMessage("You have guessed incorrectly three times. " + 
       "The answer was " + ranNum + ". " + "Would you like to play again?") 
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
@Override 
    public void onClick(DialogInterface dialog, int which) { 

    Intent i = new Intent(Task1Activity.this, Task1Activity.class); 
    startActivity(i); 

    } 
}); 

alert 
.setCancelable(false) 
.setNegativeButton("No", new DialogInterface.OnClickListener() { 
@Override 
public void onClick(DialogInterface dialog, int which) { 
Task1Activity.this.finish(); 
}; 
) 
    .setTitle("Unlucky!") 
    .create(); 

답변

1

당신은 활동을 만들고 있습니다 Intent i = new Intent(Task1Activity.this, Task1Activity.class); 님이 스택에 활동을 추가했습니다.

이 코드를 시도 :

final AlertDialog.Builder alertDialog = new AlertDialog.Builder(
     Task1Activity.this); 
alertDialog.setTitle("Unlucky!"); 
alertDialog.setCancelable(false) 
alertDialog.setMessage("You have guessed incorrectly three times. " + 
      "The answer was " + ranNum + ". " + "Would you like to play again?"); 
alertDialog.setPositiveButton("YES", 
     new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i)  { 
       Intent i = new Intent(Task1Activity.this, Task1Activity.class); 
       i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) 
       startActivity(i); 
      } 
     }); 
alertDialog.setNegativeButton("NO", 
     new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       alertDialog.dismiss(); 
       //getActivity().finish(); 
       finishAffinity(); //finish all previous activity on stack 
      } 
     }); 
alertDialog.show(); 
+0

감사합니다. 나는 정확하게 이것을 시도하고 '아니오'옵션이 작동하여 앱을 닫는다. 유일한 문제는 이제 '예'옵션이 더 이상 사용할 수 없다는 것입니다. 어떤 아이디어? –

+0

예 버튼을 누르면 어떻게됩니까? – rafsanahmad007

+0

그걸 잊어 버려. '아니오'버튼을 부정적인 것으로 변경하는 것을 잊었습니다. 그것은 위대한 작품. 감사합니다 –

0

당신은 당신이 서로의 상단에 모든 시간을 활동을 계속 추가 :

DialogInterface.OnClickListener() { 


    @Override 
    public void onClick(DialogInterface dialog, int which) { 

    Intent i = new Intent(Task1Activity.this, Task1Activity.class); 
    startActivity(i); 

    } 
}); 

위해서는 시작할 때 이전을 finish()해야 살아 단지 1 활동을 유지하기 위해 새로운 활동 :

DialogInterface.OnClickListener() { 


    @Override 
    public void onClick(DialogInterface dialog, int which) { 

    Intent i = new Intent(Task1Activity.this, Task1Activity.class); 
    startActivity(i); 
    finish(); 
    } 
}); 
0

난 당신이 확인을 클릭하면 문제가 startActivity(i); 생각을 startActivity(i) 현재 Task1Activity의 다른 Task1Activity를 시작하고 취소를 누르면 상단 Task1Activity 마무리하고 당신은 갈 이전 Task1Activity으로 되돌아 가십시오. 플래그가있는 startActivity(i)을 시도해보십시오.

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);