1

プログラムがシャットダウンまたは一時停止モードになる場合に、プログラムを保存したいと考えています。name の関数を作成しましたsave。しかし今、私の質問は、ダイアログsuper.onPause()のボタンが押されるまでメソッドで待機するにはどうすればよいですか? saveここに私のコード:

@Override 
    public void onPause()
    {


         AlertDialog.Builder builder2=new AlertDialog.Builder(rechner.this);
         builder2.setMessage("Möchten sie ihre Noten Speichern?");
         builder2.setPositiveButton("OK",new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface dialog, int which) {
              save();
                 }
              });

            builder2.setNegativeButton("Nein Danke!", new DialogInterface.OnClickListener() {
            @Override
             public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(getApplicationContext(), "Danke, dass sie mein Programm verwendet haben", Toast.LENGTH_SHORT).show();
             onDestroy();
             }});
             builder2.setTitle("Speichern");
             builder2.show();
           //wait until somethin clicked
            super.onPause();    

    }

あなたが私を助けてくれることを願っています。悪い英語でごめんなさい;)

4

2 に答える 2

1

私は先に進み、あなたができないと言うつもりです. 少なくとも、すべきではありません。物事をスムーズに実行するために、Android は必要なときにいつでもアプリをシャットダウンできる必要があります。電話がかかってきて、ユーザーが電話に出たいときにポップアップを表示しようとするとどうなりますか? 幸せなキャンピングカーになるつもりはありません。

本当に必要な場合は 、戻るボタンのアクションをオーバーライドしてポップアップを表示することができます。

また、一時停止はおそらく最終的なものではありません。一時的に状態を保存し、それに戻りますonResume()

于 2012-11-02T16:24:04.387 に答える
0

「super.onPause();」という行を入れてみませんか。クリックリスナーに?お気に入り:

@Override 
public void onPause()
{
     if(pauseAlreadyClicked) {
         super.onPause();
     } else {

     AlertDialog.Builder builder2=new AlertDialog.Builder(rechner.this);
     builder2.setMessage("Möchten sie ihre Noten Speichern?");
     builder2.setPositiveButton("OK",new DialogInterface.OnClickListener() {
     @Override
     public void onClick(DialogInterface dialog, int which) {
          save();
          pauseAlreadyClicked = true;
          onPause();
             }
          });

        builder2.setNegativeButton("Nein Danke!", new DialogInterface.OnClickListener() {
        @Override
         public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(getApplicationContext(), "Danke, dass sie mein Programm verwendet haben", Toast.LENGTH_SHORT).show();
         onDestroy();
         }});
         builder2.setTitle("Speichern");
         builder2.show();    

     }
}

したがって、ユーザーが「はい」と言うのを待ちます。ユーザーがダイアログをキャンセルした場合、何も起こらないと思います...(もちろん、この状況では OnCancelListener を設定できます)

于 2012-11-02T16:50:08.193 に答える