2016-07-24 5 views
0

私の考えは、アプリを破壊すると、私のアプリが破壊された後に警告ダイアログを表示したい。onDestroy()関数でAlertDialogを使用できますか?

パブリッククラスMainActivityはAppCompatActivityあなたはいけない

View.OnClickListener { 
    Button btnStart, btnStop; 
    Intent intent; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     btnStart = (Button) findViewById(R.id.btnstart); 
     btnStart.setOnClickListener(this); 
     btnStop = (Button) findViewById(R.id.btnstop); 
     btnStop.setOnClickListener(this); 

     intent = new Intent(MainActivity.this, MyService.class); 
    } 

    @Override 
    public void onClick(View view) { 
     switch (view.getId()) { 
      case R.id.btnstart: 
       startService(intent); 
       Toast.makeText(MainActivity.this, "Service Started", Toast.LENGTH_SHORT).show(); 
       break; 

      case R.id.btnstop: 
       stopService(intent); 
       Toast.makeText(MainActivity.this, "Service Stopped", Toast.LENGTH_SHORT).show(); 
       break; 
     } 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setPositiveButton("yes", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       finish(); 
      } 
     }).setNegativeButton("No", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       stopService(intent); 
      } 
     }).setMessage("Do you want to play Music in Background?").setTitle("Wait please...").create().setCancelable(false); 
     builder.show(); 
    } 
} 
+1

)' – kaitian521

+0

があなたの 'onBackPressed'関数をオーバーライドしてみます。 –

答えて

3

を実装して拡張します。私は、私は私のやり方が悪いかもしれない行うことができますが、私はこれをしなかったし、そのことworking.codeは以下だと思い、練習していますonDestroy()に何かを表示してみてください。 アプリを閉じる前にユーザーに警告する場合は、[戻る]ボタンを無効にすることができます。 weired ondestroyは活動が破壊されているときにアプリを閉じて再確認するために、ユーザが必要な場合は、あなたが(仕上げ `前にダイアログを表示することができますと呼ばれている

@Override 
public void onBackPressed() { 
    ... 
} 
+0

私はdestService(インテント)を呼び出すことができますが、AlertDialogはなぜですか? –

+1

onDestroyは、呼び出しが保証されていないため、アプリロジックに不可欠なものには適していません。例えばonPauseからサービスを停止することができます。 – auval

関連する問題