0

Application.onCreate または MainActivity.onCreate で初期化作業 (DB を開く、イメージのディスク キャッシュを初期化するなど) を行いますが、初期化を解除する作業 (DB を閉じる、ディスク キャッシュをフラッシュ/閉じる/uninit するなど) を行う機会はありません。画像の場合) アプリがシステムによって強制終了されようとしているとき。

Application.onDestroy がエミュレーターでのみ呼び出されることは誰もが知っています...... メモリが少ないときにアプリがシステムによって強制終了された場合、 Application.onLowMemory は決して呼び出されません。

誰か助けてくれませんか?

ありがとう!

4

3 に答える 3

2

Android のトレーニングを見れば、どこでこれを行うことができるかがわかります。要約すると

onPause()が呼び出された後はいつでもアプリを強制終了できると想定する必要があります。onPause()

于 2013-11-04T03:36:31.307 に答える
1

onTrimMemory()は、リソースの一部を解放することについて真剣に考える必要がある場所です。それはAPI14用です。古いバージョンには onLowMemory() が最適です。

于 2013-11-04T04:16:15.090 に答える
0

OutOfMemoryErrorはErrorクラスから派生します。そして、そのドキュメントから、

Error is the superclass of all classes that represent unrecoverable errors.
 When errors are thrown, they should not be caught by application code.

したがって、簡単な答えはノーです。

では、代替手段は何ですか?

ヒープの使用状況を常に監視し、メモリ不足エラーが発生する前に、やりたいことを何でも実行できます。

于 2013-11-04T04:03:38.983 に答える