2012-04-16 7 views
0

私は、タブホスト内のいくつかのオプションのチェックボックスとボタンのためのスクロールビューを持っています。使用量が〜7MB増加します。タブホストの私のAndroidのScrollviewは、あまりにも多くのメモリを消費しています

これは、16MBのヒープリミットを超えてしまいます。

この大量のメモリ消費を何とか減らし、オプションタブから別のタブに切り替えるたびに完全に削除する方法はありますか?あなたのTabActivityインサイド

+0

Androidはあなたの記憶を世話し、一時停止した「アクティビティ」を「非常に低いメモリ状況」で破棄します。明らかにこれは避けるべきです。タブの内容として 'Activities'ではなく' Views'を使うことをお勧めします。しかし、これは7メガバイトのメモリを取り除くためには役に立たないでしょう。 _some_ボタンとチェックボックスを含むアクティビティは、確かに〜7MBのメモリを占有することはできません。アクティビティに大きなビットマップ(背景、イメージボタンなど)や他のリソースを使用していますか? – 207

+0

こんにちは、1つの小さなビットマップ、13のチェックボックス、6つのボタン、4つのテキストビューしか使用していません。それはむしろ大きく、私はアンドロイドがそれをスクロールするために全体のビューから1つの大きなビットマップを作成していると思う、それはあまりにも多くのスペースを占めていると思う。そして、私はその巨大な記憶を扱うためにアンドロイドに頼っているのではなく、正しい時だと思うときに自分自身でやりたいと思っています。 – HardCoder

+0

はい。このような状況では、システムを強制的に強制してはいけません。さらに、メモリが大きくなればなるほど、GarbageCollectorとあなたのアプリは遅くなる必要があります。そのため、私は記憶(活動)を解放する方法を探さないでしょう。私はあなたの活動がとても多くの記憶を取り上げる理由を探します。あなたはビットマップを削除してヒープの使用にどのように影響するのかを見ることができます。 – 207

答えて

2

、このようなあなたのインテントを作成してみてください:

Intent myIntent = new Intent(this, MyAwesomeTabView.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

これは、ユーザーがタブをクリックするたびに、クリックされたタブは、ヒープ上にある唯一の活動になることが保証されます(他の人になります破壊される)。

+0

私が探していたものと全く同じです。ありがとうございました。 – HardCoder

関連する問題