その保存先を指定し画像スケーラビリティの問題ですね。
質問
私の応用用途が多かったのは確かであろう画像をダウンロードしインターネットから、キャッシュされた地元のスマートフォンです。私は何が正しい方法で保存します。あはいくつかの方法が考えられていない満足しています。
そして、このSDカードの公開フォルダ
- を使用してスペースの見解放されるアンインストール
- 利用いただけますが、さらに歯ギャラリー
- ニーズにフォルダのsdカードのルートができるのと実際に見ながら閲覧お電話)
そして、このSDカードを非公開フォルダ
- を使用してスペースの見解放されるアンインストール
- 密かに使用空間でのSDカード
そして、このアプリケーション内よ
- 吹き出してくアプリケーションサイズから離れた
何が正しい方向での現地の画像を申し込んな物館と聖ゲオルゲ記念教会、ユーザーとのないごみどこ?
解決
あなたの最善の解決策を使用することです。
context.getCacheDir()
このディレクトリには、アプリケーションにプライベートであり、デバイスは、スペースの不足している場合は、さらにシステムがあなたのために、このディレクトリから削除することができ、アンインストール時に削除されます。
ドキュメントが言うことにかかわらず、注意します:
あなたはシステムに依存しないでください あなたのためにこれらのファイルを削除します。君は 常に合理的なを持っている必要があります 量の最大値、例えば1 MB。 スペースを使用すると、キャッシュファイルを消費し、 超えたときにそれらのファイルを剪定 そのスペース
あなたは多くのスペースを必要とし、むしろSDカードを使用する場合は、呼び出すことができます。
getExternalCacheDir()
の代わりに。これらはまた、アンインストールで削除されますが、システムは外部ストレージの空き容量を監視しませんので、低い場合には、自動的にスペース上のこれらのファイルを削除しません。このオプションを使用する場合は、外部ストレージがで利用可能であることを確認する必要があります。
Environment.getExternalStorageState()
それに書き込もうとする前に。
他のヒント
あなたはMediaScannerから画像を非表示にすることができます隠されたDIR
の(すなわち、ドットは、接頭辞を有する)よう/sdcard/.donotscan/
など。
更新: romainguyこのをTwitter上で言及したようにファイルを置く場合も動作しますDIRに名付け.nomedia
ます。
私の最良の方法は、データベースです。
- あ、お申込みをしています。
- に関連するデータベースを削除申請がアンインストールを行います。
- 誰もいないでこのファイルを外します。
更新:But;したい場合はキャッシュのみのデータがキャッシュジで定義されwebkit. CacheManager
僕のパッケージを使用する前にその方法を見直前に:
static boolean cacheDisabled()
static boolean endCacheTransaction()
static CacheManager.CacheResult getCacheFile(String url, Map<String, String> headers)
static File getCacheFileBaseDir()
static void saveCacheFile(String url, CacheManager.CacheResult cacheRet)
static boolean startCacheTransaction()
ときに利用で Googleギコード
この助けになっていますよ。
あなたは、データベースまたはローカル(非SD)ファイルを使用します(ローカルのファイルは、完全なアンインストールで削除されます)と「ACTION_DEVICE_STORAGE_LOW」と「ACTION_DEVICE_STORAGE_OK」放送を受信するために登録し、その後のCacheManagerを使用しない場合行動。次に、あなたのアプリケーションは、デバイスに応じて、あまりにも多くのスペースを取っていると、あなたは写真を削除を開始する必要があるとき時に知っていますよ。アプリケーションのサイズがまだ成長しますが、あなたは成長と収縮を管理できるようになります。
ただ、先端 - あなたがSDカードに保存した場合、それらはMediaScannerによってスキャンされ、あなたはおそらくしたくないユーザーのギャラリー(写真)、で表示されます。だから、おそらく携帯電話に保存する、または何らかの方法でそれらをスキャンしないMediaScannerをお伝えしたいと思います(クイックGoogle検索の後に明らかに不可能。)
あなたのアプリケーションがアンインストールされたときに削除されます、アプリケーションのプライベートディレクトリに少数精鋭を格納するためにおそらく最高ます。