문제

내 응용 프로그램을 사용하여 매우 많이 사진은 인터넷에서 다운로드 및 캐시에 로컬로 안드로이드 전화입니다.내가 궁금해 무엇이 올바른 방법으로 저장하는 그는 사진.거기에 여러 가지 방법으로 보지 않는 완전 만족합니다.

저장에서도,그들에게 변치 않은 것이 SD 카드에서 폴더를 공개

  • 을 사용하는 공간을 늘 해방에 제거
  • 사용자가 볼 수 있에 사진 갤러리
  • 요구에의 폴더에 sdcard 루트가(당신은 실제로 볼 수 있습니다 그것은 탐색하는 동안 당신의 휴대 전화)

저장에서도,그들에게 변치 않은 것이 SD 카드에서는 비공개 폴더

  • 을 사용하는 공간을 늘 해방에 제거
  • 비밀리에 공간을 사용하여 SD 카드

저장 안에 그들을 응용 프로그램

  • 불면 응용 프로그램의 크기가 너무 많

는 무엇입의 올바른 방법으로 로컬에 저장한 이미지의 내용을 방해하지 않도록 사용자와 두고 쓰레기를 어디서나?

도움이 되었습니까?

해결책

최상의 솔루션은 사용하는 것입니다.

context.getCacheDir()

이 디렉토리는 애플리케이션에 비공개이며 제거에서 삭제됩니다. 또한 장치가 공간이 부족한 경우 시스템 이이 디렉토리에서 삭제할 수 있습니다.

문서는 다음과 같이 말합니다.

이 파일을 삭제하는 시스템에 의존해서는 안됩니다. 캐시 파일과 함께 소비하는 공간의 양에 대해 항상 1MB와 같은 합리적인 최대 값을 가져야하고 해당 공간을 초과 할 때 해당 파일을 정리해야합니다.

많은 공간이 필요하고 SD 카드를 사용하는 경우

getExternalCacheDir()

대신에. 또한 제거에서 제거되지만 시스템은 외부 스토리지에서 사용 가능한 공간을 모니터링하지 않으므로 공간이 낮은 경우 이러한 파일을 자동으로 삭제하지 않습니다. 이 옵션을 사용하는 경우 외부 스토리지를 사용할 수 있는지 확인해야합니다.

Environment.getExternalStorageState()

글을 쓰기 전에.

다른 팁

MediaScanner에서 이미지를 숨길 수 있습니다 숨겨진 딥에 넣으십시오 (예 : 도트 접두사가있는) : /sdcard/.donotscan/.

업데이트 : AS 로마 언어는 트위터에 언급했다 파일을 명명 한 경우에도 작동합니다 .nomedia DIR로.

가장 좋은 방법은 데이터베이스를 사용하는 것입니다.

  1. 응용 프로그램과 메모리를 폭파시키지 않습니다.
  2. 응용 프로그램이 제거되면 관련 데이터베이스가 삭제됩니다.
  3. 응용 프로그램 외에이 파일에 연락 할 수있는 사람은 아무도 없습니다.

업데이트 : 그러나; 데이터 만 캐시하려면 WebKit에 정의 된 캐시 관리자가 있습니다. 캐시미너

전에는 패키지를 사용하지 않았지만 방법은 사용하기가 직접적으로 보입니다.

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 기어스 코드

이게 도움이 되길 바란다.

당신이 경우에 당신은 원하지 않을 사용할 수 다음 데이터베이스를 사용하거나 현지(non-SD)파일(로컬 파일을 삭제에 대한 완전한 제거)등록을 받은'ACTION_DEVICE_STORAGE_LOW'과'ACTION_DEVICE_STORAGE_OK'방송 작업입니다.그런 다음 경우를 알 수 있 응용 프로그램은 너무 많은 공간에 따르면 장치가 필요할 때 시작하는 사진을 삭제.귀하의 응용 프로그램의 크기는 계속 성장할 것입니다,하지만 당신은 것을 관리할 수 있는 성장과 수축.

팁 - SD 카드에 저장하면 MediaScanner가 스캔하고 원하지 않는 사용자 갤러리 (사진)에 나타납니다. 따라서 아마도 전화에 저장하거나 MediaScanner에게 스캔하지 말라고 지시합니다 (빠른 Google 검색 후 불가능합니다.)
응용 프로그램의 개인 디렉토리에 일부 소수를 저장하는 것이 가장 좋습니다. 응용 프로그램이 제거되면 제거됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top