2016-11-04 5 views
0

アクティビティの右上XをクリックしたときのAndroidのイベントを知りたいと思います。私はonStop()onDestroy()を試しましたが、まったく呼び出されません。アンドロイドアクティビティの右上のXをクリックしたときに発生したイベントをキャッチする方法

私はAppTheme.NoActionBarをアプリケーションテーマとして使用していますが、私のアクティビティはAppCompatActivityを拡張しています。

また、右上のXボタンを削除することもできます(ただし、ドロップダウンメニューは保持します)。

enter image description here

答えて

0

その画像を見ると、あなたが「最近使用」(または何でもそれが呼ばれています)お使いのデバイスの部分です。その画面にいる場合は、あなたのアクティビティに対してonStop()が既に呼び出されており、X(close app)ボタンをクリックするとonDestroy()が呼び出されます。

これらのライフサイクルメソッド、onPause onStopなどをオーバーライドし、その中にLogステートメントを配置します。このように:Log.d( "lifecycle"、 "onStopCalled");何が起きているのかを確認してください。

+0

ご返信ありがとうございます。私は実際にonPause()、onStop()、onDestroy()をオーバーライドし、各メソッドのブレークポイントを設定してコードをトレースしました。私の見解に基づいて、最近のアプリケーションボタン(四角形のボタン)をクリックすると、onPause()が最初にコールされ、onStop()が呼び出されますが、Xボタンをクリックすると、それは非常に奇妙です。ここに何もないのですか? –

+0

そうです。最近のアプリボタン(または画面上にアプリが表示されなくなるボタン)をクリックすると、最初にonPauseが呼び出されてからonStop()が呼び出されます。この時点でアプリケーションはまだ動作していますが、アプリケーションが表示されていない場合は停止しています。その後、2つの選択肢があります:1.あなたのアプリをもう一度画面に表示させるか、または2.アプリを完全に閉じる。オプション2を選択した場合、onDestroy();呼び出されます。 1を選択すると、これらのメソッドが呼び出されます:onRestart(); 、onResume(); – user6650650

+0

Googleの画像で「アクティビティライフサイクル」を検索し、そのスキームを確認してください。それはあなたがもっと良く理解するのを助けるでしょう= D – user6650650

関連する問題