0

私のアプリのほとんどは、スレッドによって実行されるSurfaceViewクラスのビットマップを使用しており、一部のビットマップは現在の画面解像度と同じ大きさです。アクティビティが一時停止中の場合、Androidが自動的に大きなビットマップをリサイクルしてメモリを解放する可能性があることに気づきました。そのため、アプリ内でホームボタンをクリックしてから同じアプリを再度開くと、ビットマップが存在しなくなったためにクラッシュする可能性があります。

あなたの経験から、これに対処するための最良の方法は何でしょうか?

4

1 に答える 1

2

私はそのような状況に対処したことはありませんが、最初の試みは onResume 内で呼び出すことです

if(mBitmap.isRecycled()){ mBitmap = ... }

true が返された場合に再インスタンス化する

于 2012-08-31T10:57:40.843 に答える