0

アプリケーションがOSによって閉じられている/破壊されている(正しい用語が何であれ)かどうかを判断する方法を見つけたいと思います。onCreate()AndroidApplicationクラスでメソッドが見つかりましたが、、onDestroy()または同等のものは見つかりませんでした。(アプリケーションドキュメント

通常、アクティビティのライフサイクルで十分ですが、解放するのに時間がかかり、複数のアクティビティで使用する必要があるリソースがあります。onPauseアクティビティ( 、、、onStopまたは)の終了するライフサイクル呼び出しのいずれかでこれらのリソースを処理することは、コストがかかり、非現実的onDestroyです。

(明確にするために、Androidアプリケーションをプログラムで閉じたくありません。それに関するドキュメントとSOの質問をたくさん見つけました。アクティビティのライフサイクルにも興味がありません。)アプリケーションをいつ閉じるかを制御する必要はありません。しかし、そうするときは注意が必要です。

4

2 に答える 2

2

アプリケーションが OS によって閉じられているかどうか (正しい用語が何であれ) を判断する方法を見つけたいと考えています。

申し訳ありませんが、それは起こりません。WebnetMobile.com が彼のコメントで示しているように、あなたのアプリケーションは Android がプロセスを終了させることによって破棄され、この事実は通知されません。

解放するのに時間がかかるリソースがある

これらの「リソース」が何であり、なぜ「解放するのに時間がかかる」のかを説明しないことを選択したため、代替計画を考え出す際に誰かがあなたを支援することは困難です.

于 2012-10-09T22:11:17.370 に答える
1

私がお勧めするのは、1 つの関数 (killMyApp と呼びましょう) と、現在実行中のアクティビティのグローバル カウント (actCount) を持つことです。各 onCreate で、actCount をインクリメントします。各 onDestroy で actCount をデクリメントし、actCount==0 の場合は、killMyApp を呼び出します。これにより、残りのグッズがすべてクリーンアップされます。

于 2012-10-09T21:53:27.737 に答える