0

ご存知のように、すべての Android アクティビティは、作成、開始、再開、実行、一時停止、停止、破棄します。このプロセスは、Android のマニュアルによく示されています。

このライフサイクルでは、アクティビティがどのように作成されるかを理解する可能性はありますか? つまり、アクティビティが直接呼び出されたのか、アクティビティが一度作成されて Android OS によって強制終了され、ユーザーが戻った後に再作成されたのかをどのように理解できますか?

より基本的には、アクティビティがセカンドライフかファーストライフかをどのように理解できますか?

編集:なぜこれが必要なのですか?
私のデザインでは、データがネットから読み込まれるメイン ページがあります。ユーザーが詳細をクリックすると、Web のセッションと同じように、データが静的オブジェクトに配置されます。これは正常に動作します。

しかし、ユーザーがセカンド ライフで詳細アクティビティを開始すると、静的オブジェクトのデータが強制終了され、nullpointer 例外が発生しました。

同じアーキテクチャのプロジェクトが 4 つあるので、この問題を解決したいと考えています。

4

3 に答える 3

2

そこにはすでにフローチャート情報があります。途中または同様Activityの死亡の事実を保存することにより、後で使用するために常にいくつかの状態を保持できます。onDestory()その後、次にActivity再開したときに、実際に破壊されたのか、停止しただけなのかがわかります。理想的なケースでは問題にならないはずなので、OSから無料でその情報を取得するとは思いません。

于 2012-05-02T21:45:33.363 に答える
0

ご質問の内容が理解できた場合は、いつアクティビティが OS によって破棄されたのか、または一時停止されただけなのかを知りたいと思われます。logcat ステートメントを使用するだけです。

onPause() {
    super.onPause();
    Log.v("Activity", "Paused");
}

onDestory() {
    super.onDestroy();
    Log.v("Activity", "Destroyed");
}

onCreate()、onResume() など、実際には何でも同じことができます。

于 2012-05-02T21:48:51.840 に答える
0

破棄された後でも(少なくともメソッドが呼び出された後)、破棄されたときと同じ状態で「戻る」可能性があるため、これらを区別しないでください。これは、最初に作成されたときの最初の状態とは異なる可能性があります。

これが必要な理由を説明してください。Android はこの質問に関して「奇妙な」動作をしているため、問題を「再考」する必要があります。

Androidシステムの動作に従ってプロジェクトのライブサイクルを設計することをお勧めします-これは実際にはこの点に関してどこにも文書化されていません(少なくとも、これまでのところ良い文書に出くわしていません)

于 2012-05-02T21:46:04.253 に答える