4

私はAndroidを初めて使用しますが、savedInstanceStateとライフサイクルの管理に問題があります。

http://developer.android.com/guide/topics/fundamentals/activities.html#Lifecycle ライフサイクルに関する記事を読みましたが、プロセスがいつ終了するかはよくわかりません。私の素敵なsavedInstanceSateが使用されます。「HOME」を押すことはできますが、「onPause」、「onResume」の順に起動するだけだと思います。

[メニュー]->[設定]->[アプリケーション]->[アプリケーションの管理]->[アプリケーション名]->[強制停止]に移動すると、実行中のアプリとして表示されますが、再起動すると「最初のアクティビティ」に戻ります。つまり、アプリケーションを閉じるようなものであり、よく理解していれば、私が望むように「プロセスを強制終了する」ことではありません。

だからここに私の質問があります:

1)プロセスが強制終了されたことを確認するにはどうすればよいですか(再起動時にアプリがsavedIntanceStateを使用するように)?

2)savedInstanceStateが適切にプログラムされているかどうかをテストするために、プロセスを強制的に強制終了するにはどうすればよいですか?

3)「強制終了」された後、アプリが再起動され、「onCreate」が呼び出された場合(その時点でsavedInstanceState!= nullを使用)、アクティビティを呼び出したときに提供したIntentExtra情報にアクセスできますか。プロセスが強制終了されたときにインテントの情報が削除されましたか?言い換えると、saveInstanceStateに、Intent Extraに保存されているもののコピーを含める必要がありますか?

私は十分に明確であることを願っています;)

4

1 に答える 1

1

1) 心配する必要があるのは、Activity のonSaveInstanceState(). Android は、プロセスを強制終了する前にそれを呼び出します。

2) Android テスト プロジェクトをセットアップする必要があります。次に、 を拡張するテストを作成し、`getInstrumentation() を呼び出しActivityInstrumentationTestCase2てオブジェクトを取得できます。Instrumentationそこから、Instrumentation.callActivityOnCreate を呼び出して、テストに使用する Bundle オブジェクトを渡すことができます。

3) エクストラをsavedInstanceStateバンドルに保存する必要があると確信しています。

于 2011-08-29T00:28:54.417 に答える