私のアプリケーションでは、複数のランナブルを持つハンドラーを使用しています。これらのランナブルを呼び出すために、postDelayedをループして、タイマーとして機能します。時間の経過とともに、これにより大量のヒープが生成されることに気付きました(10mbで、増加し続けます)。だから私の質問は、大量のメッセージを生成しないpostDelayedの代わりに何を使用できるかということです。
質問する
374 次
1 に答える
1
ランナブルがこれほど多くのメモリを消費する可能性はほとんどありません。実行可能な各インスタンスは、処理後にGCによってクリアされる必要があります。ランナブルをより速く作成して投稿している場合、それらが実行されると、UIスレッドが入力イベントをディスパッチできないため、ANRが取得されます。新しいランナブルを頻繁に作成すると、GCがより頻繁にトリガーされますが、ヒープが大きくなることはありません。
アプリでメモリリークが発生している可能性が高くなります。MATを使用して、Javaヒープで大量のメモリを正確に消費しているものを確認できます。
于 2012-07-20T16:02:57.887 に答える