4

ユーザーが戻るボタンを押した場合に呼び出されるが、startActivityForResult() メソッドが呼び出された場合には呼び出されないアクティビティ ライフサイクルのメソッドはありますか? テストしても方法が見つかりませんでした。

4

2 に答える 2

6

申し訳ありませんが、解決策を見ていませんでしたが、ここにあります:

startActivityForResult() を呼び出すことで、元のアクティビティのメソッド onPause() および onStop() が呼び出されます。

戻るボタンを押すと、メソッド onPause()、onStop()、および onDestroy() が呼び出されます。

したがって、違いは onDestroy() メソッドです。

于 2010-07-15T08:06:51.787 に答える
6

通常は、onResume() の後に onActivityResult() が続きます。ただし、可能性は低いですが、ユーザーが他のアクティビティを操作しているときに、呼び出し元のアクティビティが強制終了される可能性があります。これは、システムがメモリを使い果たしたときに発生し、その時点で「最も非アクティブ」なものから始めて、ものを殺し始めます。その場合、onCreate()、onStart()、onResume()、そして最後に onActivityResult() を通過すると思います。 https://stackoverflow.com/a/2869832/323696

上で引用した答えは正しいですが、呼び出されたアクティビティが完了する前に呼び出しアクティビティがいつ強制終了されるか、または終了()されるかについての説明は除きます。

その場合、別のアクティビティActivity #2を呼び出した後にstartActivityForResultを使用して呼び出しアクティビティActivity #1が再開すると、アクティビティ # 1のメソッドonActivityResultBEFORE onResumeで呼び出されます。

これは、アクティビティ #1の onResume 内から SQLite データベース オブジェクトをインスタンス化する場合に知っておくことが重要です。その場合、 Activity #2から戻るときに、onActivityResult内からオブジェクトをインスタンス化する必要もあります。

詳細については、http://developer.android.com/reference/android/app/Activity.html で「startActivityForResultメソッド」を参照してください。

これを描いたライフサイクル図を見つけることができませんでした。アクティビティから結果を得るために戻るときの手順は、LifeCycle 画像のテキスト説明内に常に要約され、「ユーザーがアクティビティに戻る」または「アクティビティが前面に出てきます」と記載されています。'

于 2012-02-29T21:20:08.307 に答える