継続的に動作するタイマーがあります。戻るボタンを押すと、そのインテントを終了するか、戻ってタイマーを戻すことができるダイアログが表示され、戻るボタンによって停止されたものが表示されます。続きをクリックすると、onResume()メソッドによってタイマーが続行され、正常に機能します。ただし、ダイアログが画面に表示されているときに戻るボタンを押すと、ダイアログで[続行]を押した場合と同じようにタイマーをオンにします。しかし、代わりに、戻るボタンを押しても何も起こらず、タイマーが停止します。一部のメソッドは、タイマーが作動している場合、またはダイアログによって停止されている場合にのみ機能するため、これは適切ではありません。ただし、ダイアログがなく、タイマーが停止している場合、多数の潜在的なエラーが発生する可能性があります。では、ダイアログが画面に表示されているときにユーザーが戻るボタンを押すのを止めるにはどうすればよいですか?私はこのようなことを試みました:
if ((keycode==back) && a=0 ) {... a=1 , onPuase()} // dialog comes in onPause() just happened
else ((keycode==back) && a=1 ) {... a=0, onResume()} //I want onResume() to happen here
しかし、それは良くありません。ダイアログは最初の[戻る]ボタンに表示され、2番目の[戻る]に表示されなくなります(ここでは何も起こりません)。タイマーはここでも停止していますが、3番目の戻るボタンでタイマーが開始されます。したがって、ユーザーがもう一度押す必要があることを知らないため、問題を引き起こす可能性のある不必要なBackがあります...