2017-12-18 9 views
0

1)活性はonStop()状態である。 例:概要ボタンをタップします。なぜアプリケーションからメモリにプッシュされた後にonDestroyed()が呼び出されないのですか?

2)アンドロイドがメモリからアプリをプッシュするまで電話で作業する。 例:概要をタップしてアプリが、その後タップ)

3ゲームがメモリから押し出さそれたときに破壊すること

どれソリューションをクラッシュ?

答えて

0

onDestroyが呼び出されるという保証はありません。これに依存しないでください。日和見的なクリーンアップにのみ使用してください。特にクラッシュの場合は、アプリが安全な状態にない可能性があるため、呼び出されません。

0

あなたはいくつかのことができます。アプリケーションファイルで絶対に必要なクリーンアップを管理します。 (低メモリ)コールバックは同じメソッドを呼び出すことができます。

1つのアイデアは、アプリケーションクラスのアクティブバージョンへの参照を保持するベースクラスまたは抽象モデルを持つことです。次に、メモリが不足している場合は、手動で(selectedActivity.OnDestroy)を呼び出すことができます。

メモリが不足しているとクリーンアップが行われないようにすることは回避策です。また、クラッシュがクリーンアップを呼び出すことができるように、unhandledExceptionリスナーに1つを追加することもできます。あなたの最終的なクリーンアップがアプリケーションの終了時にいかに重要であるかに依存します。

クリーンアップが重すぎる場合や時間がかかる場合は、起動時にチェックし、次のアプリの起動時にクリーンアップを実行するDBまたは共有プレファイルに「不良クロージャ」フラグを設定するだけです。

関連する問題