3

アクティビティ ライフ サイクルのドキュメントに従って、アプリケーションが強制終了される前に呼び出されることが保証されているため、メソッド内の永続的なアプリケーション状態をOnPause()データベースに保存することにしました。 OnPause()

現在、Eclipse とavdエミュレーター (API レベル 8) を使用して次の動作に直面して
います。

OnPause()現在、Instance1 は!を呼び出さずに終了しています。

OnPause()なぜ呼ばれないのか誰か説明してくれませんか?常に呼び出されることが保証されていると思いました。そうでない場合は、Eclipse が Instance1 プロセスを終了する方法が原因である可能性があり、これを変更できるかどうかを知りたいです。どうもありがとう。

4

2 に答える 2

4

Eclipse を介してアプリケーションを起動すると、デバイスまたはエミュレーターで既に実行されている同じアプリのインスタンスから事実上ラグアウトされます。これは、Eclipse から実行している場合にのみ、実際には発生しません。

したがって、 onPause() が常に呼び出されるように計画できます。

于 2012-05-26T19:21:39.927 に答える
0

Eclipse(インスタンス1および2)を介してアプリケーションを開始するとはどういう意味ですか?

実行ボタンをクリックすると、エミュレーター(この場合または実際のデバイス)がアプリケーションを実行します。他のAVDで実行しないでください(インスタンス1と2に基づいて正しく取得された場合)。onCreate()メソッドとonPause()メソッドにログコードを配置した場合、たとえばLog.i(TAG、 "I'm in onCreate()!");の場合、logcatに表示されます。したがって、アプリを起動するとonCreateメッセージが表示され、たとえばホームボタンをクリックするとonPause()メッセージが表示されます。

これは、呼び出されることが保証されている方法です。

于 2012-05-26T19:25:31.533 に答える