0

これは私を夢中にさせています。背景としてビットマップを持つゲームがあります。これは大きいので、縮小するとうまくいきます。ただし、別のアクティビティに移動してからゲーム画面をリロードすると、背景の描画時にクラッシュします。すべてのビットマップでリサイクルを呼び出し、onDestroy() で null に設定していますが、これは役に立ちません。

任意のアイデアと、メモリをデバッグして、どのステップで成長しているかを確認するにはどうすればよいですか。私はヒープを取得することを見ましたが、実際にはどのようなサイズのものもありません。

ありがとう。

4

3 に答える 3

2

MAT アナライザーを使用してメモリの問題を確認できます。このリンクが役に立ちます。

于 2013-11-12T09:46:41.280 に答える
1

あるアクティビティ A から別の B にジャンプすると、A が終了せず、リソースがまだメモリに残っています。これには 3 つの解決策があります。

  1. アクティビティ B を呼び出すと、アクティビティ A が終了する場合があります。
  2. ビットマップに WeakRefrences を使用して、gc が未使用のリソースを削除し、再開時に再ロードできるようにします。
  3. ビットマップ onPause() の参照を削除し、それらを onResume() にロードします
于 2013-11-12T09:50:16.827 に答える