Android アプリケーションの起動時と終了時に、いくつかのロジックを実行できるようにしたいと考えています。各アクティビティには独自のライフサイクルがあるため、Android ではこれ自体の概念が実際には存在しないことを理解しています。
アクティビティ A、B、C、D があり、A がルート アクティビティであるとします。
アプリケーションの起動:
Aのロジックを入れることもでき
onCreate()
ますが、これは方向が変更されたとき、および (おそらくメモリが少ない場合) ユーザーがBack
アクティビティ B、C、または D からキーを押した場合にも呼び出されます。Application
ロジックを拡張して配置するクラスを作成できますonCreate()
。これを試しましたが、キーを押してからメイン メニューの関連するアイコンをクリックしてアプリケーションを再起動するonCreate()
シナリオでは呼び出されませんでした。Home
アプリケーション出口:
すべてのアクティビティにロジックを配置
onStop()
するonDestroy()
こともできますが、アプリケーション内の別のアクティビティへの遷移の結果として呼び出されていないかどうかを確認できる必要があります。また、メモリが不足しているときにこれらの関数が呼び出されるという保証はありませんか?.すべてのアクティビティで onLeaveUserHint() をオーバーライドできます。これを行うことに欠点はありますか?
編集 (CommonsWare の要求に応じて):
「アプリケーションの起動」 - アプリケーションの起動の私の解釈は、アクティビティのいずれかのアクティビティが表示された後、アクティビティのいずれかが表示されている場合です (たとえば、ユーザーがメイン メニューのアプリケーション アイコンをクリックした場合)。
「アプリケーションの終了」 - アプリケーションの「終了」の私の解釈は、アクティビティのいずれかが表示された後にユーザーが意図的にアクティビティを終了した結果として、アクティビティが表示されていない場合です (たとえば、「ホーム」キーまたは「戻る」を押すことによって)。 " 鍵)。
(これがいくつかの明確化を提供することを願っています)。