0

Android アプリケーションの起動時と終了時に、いくつかのロジックを実行できるようにしたいと考えています。各アクティビティには独自のライフサイクルがあるため、Android ではこれ自体の概念が実際には存在しないことを理解しています。

アクティビティ A、B、C、D があり、A がルート アクティビティであるとします。

アプリケーションの起動:

  • Aのロジックを入れることもできonCreate()ますが、これは方向が変更されたとき、および (おそらくメモリが少ない場合) ユーザーがBackアクティビティ B、C、または D からキーを押した場合にも呼び出されます。

  • Applicationロジックを拡張して配置するクラスを作成できますonCreate()。これを試しましたが、キーを押してからメイン メニューの関連するアイコンをクリックしてアプリケーションを再起動するonCreate()シナリオでは呼び出されませんでした。Home

アプリケーション出口:

  • すべてのアクティビティにロジックを配置onStop()するonDestroy()こともできますが、アプリケーション内の別のアクティビティへの遷移の結果として呼び出されていないかどうかを確認できる必要があります。また、メモリが不足しているときにこれらの関数が呼び出されるという保証はありませんか?.

  • すべてのアクティビティで onLeaveUserHint() をオーバーライドできます。これを行うことに欠点はありますか?

編集 (CommonsWare の要求に応じて):

「アプリケーションの起動」 - アプリケーションの起動の私の解釈は、アクティビティのいずれかのアクティビティが表示された後、アクティビティのいずれかが表示されている場合です (たとえば、ユーザーがメイン メニューのアプリケーション アイコンをクリックした場合)。

「アプリケーションの終了」 - アプリケーションの「終了」の私の解釈は、アクティビティのいずれかが表示された後にユーザーが意図的にアクティビティを終了した結果として、アクティビティが表示されていない場合です (たとえば、「ホーム」キーまたは「戻る」を押すことによって)。 " 鍵)。

(これがいくつかの明確化を提供することを願っています)。

4

1 に答える 1

1

「ロジック」をアクティビティに配置し、アプリの開始時と終了時に一度だけ呼び出す必要がある場合は、次のようにすることができます。

アプリが起動し、共有設定をチェックインすると、アプリが初めて起動されます - はいの場合 -> ロジックを実行し、完了したことを共有設定に保存します。

ユーザーがアプリを終了したときに onBackPressed() をオーバーライドし、好きなことをして、必要なアプリの状態を保存して、アプリの再起動時に「ロジック」を再度呼び出すことができます。

それはあなたが念頭に置いていたことですか?

于 2012-12-10T14:33:06.527 に答える