2012-04-17 4 views
2

私のプロジェクトは完全にイメージベースです。プロジェクトでギャラリーとカバーフローを使用しています。ヒープサイズが小さいため、アプリは強制的に閉じています。ヒープメモリを動的に空にするかクリアする方法

私はアプリを読み込むたびにヒープサイズをクリアしたいので、再利用することができます。
ギャラリーとカバーフローでSystem.gc() & recycle()メソッドを使用しましたが、ギャラリーとカバーフローは相互に関連しているため、オブジェクトは常に参照されるため、System.gc()recycle()は効果がなく、ギャラリーとカバーフローはランダムな時点でクラッシュしますそれを使用している間。

何らかの理由でここに自分のコードを表示することはできません。非常に大きいので、ここに表示することはできません。

私を助けてください&この質問を読んでいただきありがとうございます。

答えて

0

まあ、実際にGCを強制的に実行する制御はありません。それはそれが時間だと思うときはいつでも、それは自分自身で実行されます。

When does System.gc() do anything

だから、あなたが持っている唯一のオプションは慎重画像とビットマップを使用することです。

ヒント=>ソフトリファレンスを使用します。 http://developer.android.com/reference/java/lang/ref/SoftReference.html

+0

ギャラリーとカバーフローでの使用方法 – unkown

+0

作業サンプルを検索する必要があります。あなたはインターネット上でいくつかを見つけるでしょう。まず、コンセプトを理解しようとすると、それをどのように使用するかがより明確になります。 –

0

が原因このメモリの問題にクラッシュを制御するには、次のように実行する必要があります。

BitmapFactory.Options options=new BitmapFactory.Options(); 
options.inSampleSize = 8; 
Bitmap preview_bitmap=BitmapFactory.decodeStream(is,null,options); 

inSampleSize値は、メモリ消費量を削減します。

詳しい情報は、このスレッドから持っていたことができます。

Strange out of memory issue while loading an image to a Bitmap object

ホープこれはあなたを助けるでしょう。

+0

これは私のイメージの品質を低下させ、私は画質で妥協することはできません – unkown

0

ヒープスペースを増やし、環境設定に行き、ヒープスペースを管理する場合、eclipseのように自動削除をオンにします。ゴミ箱のボタンをクリックしてください。