0

Androidでプログラミングする方法を学びながら、Javaを学んでいます。Java がすべてのメモリ管理を処理するという印象を受けましたが、これは正しくないようです。私の小さなアプリは問題なく動作しましたが、今はグラフィックが多い幼児向けのパズル アプリに取り組んでいます。アプリをしばらく実行した後、多くのメモリ不足の例外が発生しました。現在は正常に動作していますが、ビットマップポインターを使い終わったらnullに設定することで問題を解決しました。各サービスの最後に、すべてのビットマップ オブジェクトを null に設定し、それを機能させました。

動作しますが、Java でポインターを解放する必要があるかどうかわかりません。

4

1 に答える 1

0

ビットマップを null に設定すると、ガベージ コレクターを実行してクリーンアップできるようになります (最初に recycle を呼び出すことでプロセスを高速化できます)。画像が必要ない場合は、これを行うことをお勧めします。そうしないと、多くの大きな画像を保持すると、アプリの実行に許可されているすべてのメモリがすぐに使用されます (Android では大量のメモリが得られません)。

イメージが範囲外になると、これは自動的に発生します (ただし、recycle を再度呼び出すと、このプロセスが高速化されます)。ただし、多数のイメージを保持するグローバルな静的イメージが多数ある場合は、問題が発生します。 .

于 2013-08-08T16:04:39.110 に答える