2011-09-14 12 views
0

私はアンドロイドアプリケーションを構築しています。それは合計10の活動を含んでいます。すべてのアクティビティはポートレートモード用です。条件は、すべてのアクティビティのランドスケープモードで同じカバーフローエフェクトを表示する必要があることです。 これはonConfigChangeメソッドで行うことができますが、問題は、毎回Coverflowエフェクトを実装する際に大量のメモリを消費し、システムがクラッシュすることです。どこかのメモリリークの問題かもしれません。Android:アプリケーションのすべてのアクティビティと同じ風景ビュー

私はシステムがクラッシュせず滑らかな方向性を持つように単純なテクニックがあるのだろうかと思っていますか?

ありがとうございます。

+0

は、あなたのアプリケーションの肖像画や風景モードの両方を実行しますか? –

+0

はい、アプリケーションは、横向きと縦長の両方のモードで動作するはずです。しかし、ランドスケープモードでも同じようなカバーフロー効果があります。 – user609239

答えて

1

メモリリークの防止は、アプリケーションを構築するためのアプローチです。あなたはそれを知っているとき、それは簡単です:一言で言えばhttp://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html

  1. ビューとドロウアブルを保持しないでください。これにより、GCはアクティビティを処分できなくなります。
  2. すべての方向変更でビットマップをデコードしないでください。それらを一度デコードしてから、あなたのカスタムApplicationクラスに保存します(これはアプリごとに1つで、向きの変更では破壊されません)。カスタムイメージキャッシュクラスを作成することもできます。 inSampleSizeオプションとその目的の解像度(resize when decoded)で
  3. ロード画像:

    BitmapFactory.Options options=new BitmapFactory.Options(); 
    options.inSampleSize = 8; 
    Bitmap bitmap=BitmapFactory.decodeStream(inStream,null,options); 
    
+0

ありがとうございます。私はこのガイドラインを試してみるつもりです。 – user609239

関連する問題