1

テーブルビューを含む重いウィンドウを開くと、以下のメモリ エラーが発生します。

最初の 10 ~ 15 回の開閉は問題ありませんが、その後は以下のようになります。

I/dalvikvm-heap(22638): Forcing collection of SoftReferences for 5030656-byte allocation
D/dalvikvm(22638): GC_BEFORE_OOM freed <1K, 10% free 116152K/128624K, paused 91ms, total 91ms
E/dalvikvm-heap(22638): Out of memory on a 5030656-byte allocation.

完全なスタック トレースはこちら

ウィンドウを閉じるたびに、次のコードを使用します。

    $.Storyboard.close();
    $.destroy();

これは私のやり方が間違っているのでしょうか、それともチタンに問題がありますか?

私は合金でチタン3.1.3GAを実行しています

4

2 に答える 2

0

コントローラーのコードを次のように変更してみてください。

$.Storyboard.close();

$.Storyboard.addEventListener('close', function() {
    $.destroy();
});

destroy() は、イベント リスナーの外で呼び出されるのが遅すぎる可能性があります。

于 2013-10-06T09:07:26.210 に答える
0

destroyモデルビューバインディングを使用している場合にのみ、関数を使用することになっています(コードからはそうではないようです)。

destroyグローバルモデルとコレクションへの参照を持つコントローラーにアタッチされたイベントリスナーを削除します(これによりメモリリークが防止されます)。ウィンドウを閉じると、そのような参照はすでに破棄されています(ただし、モデルビューバインディングを使用していないため)。

だから絶対に電話しないでください$.destroy

于 2013-10-06T14:00:29.387 に答える