문제

내가 만들어진 응용 프로그램을 생성하고 파일을 저장해줍니다.거기에 바인딩하는 방법 폴더와 응용 프로그램을 삭제하기 위해서는 모든 파일을 사용자 실행을 제거에 안드로이드 기기를 사용하시나요?

도움이 되었습니까?

해결책

응용 프로그램에서 커널을 수정하지 않고 제거되고 있음을 알 수있는 방법은 없습니다. 모든 파일에서 생성되었습니다 data/data/your.app.package 응용 프로그램시 자동으로 삭제됩니다.

나는 SDCard에서 아무것도 청소된다고 생각하지 않습니다. 빠른 테스트를 수행하고 찾을 수 있습니다.

또 다른 접근법은이 응용 프로그램이 설치되어 있는지 여부를 확인하는 다른 응용 프로그램이있는 것일 수 있습니다. 그렇지 않다면 정리 작업을 수행 할 수 있습니다.

다른 팁

2009 년부터 약간의 발전이 있었던 것 같습니다 :).

로부터 선적 서류 비치:

API 레벨 8 이상을 사용하는 경우 사용하십시오. getExternalCacheDir() 캐시 파일을 저장 해야하는 외부 스토리지 디렉토리를 나타내는 파일을 엽니 다. 사용자가 응용 프로그램을 제거하면 이러한 파일이 자동으로 삭제됩니다. 그러나 애플리케이션 수명 동안 이러한 캐시 파일을 관리하고 파일 공간을 보존하기 위해 필요없는 파일을 제거해야합니다.

API 레벨 7 이하를 사용하는 경우 사용하십시오. getExternalStorageDirectory() 외부 스토리지의 루트를 나타내는 파일을 열려면 다음 디렉토리에 캐시 데이터를 작성하십시오.

/android/data // cache/the는 "com.example.android.app"과 같은 Java 스타일 패키지 이름입니다.

사용될 때도 getExternalCacheDir(), 나는 당신의 앱의 패키지 이름 인 캐시 디렉토리가 적어도 Lenovo A1에 있지 않은 Android 문서에서 알 수 있듯이 자동으로 제거되지 않는다는 것을 알았습니다. 약간 순진 할 수 있지만 다시 설치하는 동안 이전 데이터를 정리할 수 있습니다. 거기서, 앱이 설치되지 않았거나 처음으로 설치 중인지 확인할 수 있습니다. 공유 환경 설정을 사용하여 값, 부울 수있는 값을 저장합니다. 그것은 다음과 같습니다.

SharedPreferences sharedPrefs = getSharedPreferences(INSTALL_PREFS, MODE_PRIVATE);
if(sharedPrefs.getBoolean("AppInstalled", false) == false){
    //DELETE APP DIRECTORY
    SharedPreferences.Editor editor = sharedPrefs.edit();
    editor.putBoolean("AppInstalled", true);
    editor.commit();
}

이런 식으로 앱이 실행될 때마다 처음 실행 중인지 확인합니다. 앱이 제거되면 앱의 공유 환경 설정도 마찬가지입니다. 그런 다음 다음에 설치되면 if (...)가 사실이되며 거기에서 청소할 수 있습니다.

나는 이것이 질문에 직접 대답하지 않고 사용자의 장치에 사용되지 않은 데이터를 남겨 두는 것이 좋지 않다는 것을 알고 있지만, 앱을 제거 할 때 정리하려고 시도하는 대안이 될 수 있다고 생각합니다.

나이기 때문에 기존의 답변은 오래된에서 2017.그러나 그것은 사실이 없는 콜백에서는 응용 프로그램 제거,일부 메커니즘 제공되었습을 보존 앱을 넘어 데이터 제거합니다.

  • 안드로이드부터 6.0(API23),의 자동 백업 앱 기능이 도입되었을 허용자를 허용하거나 방지하는 자동으로 백업입니다.로의 API23 백업 기본적으로 사용할 수 있습니다.

  • 두 개의 새로운 application 태그에 도입 되었습니다 매니페스트 파일: android:allowBackupandroid:fullBackupContent.

선택의 자동 백업,추가 android:allowBackup="false" 매니페스트에서 파일 application 태그입니다.값이"참"가 자동으로 저장됩니다 공동 기본 설정 및 데이터베이스를습니다뿐만 아니라,클라우드 다른 파일.

둘째,당신이 될 수 있습니다 매우 특정 파일에 대해할 제외 삭제에 대한 또는 보존을 제거진 android:fullBackupContent 태그입니다.이 특성은 포인트를 포함하는 XML 파일 백업 규칙이 있습니다.XML 구성 파일 만들기에 res/xml/ 디렉토리에 다음과 같은 문법:

<full-backup-content>
    <include domain=["file" | "database" | "sharedpref" | "external" | "root"]
    path="string" />
    <exclude domain=["file" | "database" | "sharedpref" | "external" | "root"]
    path="string" />
</full-backup-content>

여기에 추가할 수 있습니다 특정 파일 형식을 포함하거나 제외하고 관련된 경로입니다.추가 android:fullBackupContent = "@xml/my_backup_rules" 태그하는 매니페스트에서 파일 application 태그입니다.

지정된 파일의 것에 백업되는 Google 드라이브에서 기본 이메일 계정에의 장치입니다.데이터 복원에 다시 설치 제공해 다음과 같은 설정을 사용하는 사용자에 의해:

Settings -> Backup & Reset -> Automatic Restore.

그것은 또한 주목해야한다는 백업 데이터는 읽을 수 없는 사용자에 의해 또는 기타 응용 장치에 있습니다.

enter image description here

동서 액세스할 수 있습 Google 드라이브서 여기:

Google Drive -> Settings -> Auto backup for apps -> Backup and reset

enter image description here

는 것을 주목할 필요가있는 경우에 동 기본 Google 계정을 사용한 여러 장치,다음에 여러 장치의 백업이 만들어집니다.백업에 대한 개인 장치에서 액세스할 수 있습니다 여기:

Google Drive -> Settings -> Backups

Google Drive - loading= Settings -> Backups">

그 이후로 적절한 독창이있는 것 같습니다. context.getexternalfilesdir ():

응용 프로그램이 소유 한 지속적인 파일을 배치 할 수있는 외부 파일 시스템의 디렉토리에 대한 절대 경로를 외부 파일 시스템 (환경 어딘가에 있습니다. 이 파일은 응용 프로그램에 비공개이며 일반적으로 사용자에게 미디어로 표시되지는 않습니다.

이것은 응용 프로그램이 제거되면이 파일이 삭제 될 때 getFilesDir ()과 같습니다.

큰 데이터를 저장하려면 파일 경로 이름으로 외부 스토리지에 저장하십시오.

Environment.getExternalStorageDirectory().toString()+"/Android/data/packageName"

패키지 이름 인 앱 패키지 이름 예 : com.think.abc

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