我有一個應用程序在用於存儲數據對象的SD卡中寫入一些文件。當用戶刪除應用程序或更新應用程序時,這些文件將保留在SD中,並且不會使用apk刪除。如果我更改我的應用程序的數據管理結構,這可能會導致一些煩人的問題,真的很難解決,只是檢查這些數據文件是否因各種原因已經存在。我該如何管理apk的安裝
有沒有辦法讓Android操作系統也刪除這些文件,當應用程序unistalled或更新沒有用戶的手動干預?
我有一個應用程序在用於存儲數據對象的SD卡中寫入一些文件。當用戶刪除應用程序或更新應用程序時,這些文件將保留在SD中,並且不會使用apk刪除。如果我更改我的應用程序的數據管理結構,這可能會導致一些煩人的問題,真的很難解決,只是檢查這些數據文件是否因各種原因已經存在。我該如何管理apk的安裝
有沒有辦法讓Android操作系統也刪除這些文件,當應用程序unistalled或更新沒有用戶的手動干預?
對於更新情況,是的。實施BroadcastReceiver
子...
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
if (intent.getData().equals(Uri.parse("package:<YOUR APP'S PACKAGE>"))) {
// Clean up for the new app install
}
}
}
...然後<receiver>
標記添加到您的清單:
<receiver android:name =".MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED"/>
<data android:scheme="package"/>
</intent-filter>
</receiver>
還有一個PACKAGE_REMOVED
動作,但之後Intent
與行動火災應用程序被刪除,所以你沒有機會清理。
當用戶刪除應用程序或應用程序的更新,這些文件保留在SD和不與APK
那麼你就應該將它們存儲在getExternalFilesDir()
或getExternalCacheDir()
刪除。這些目錄中的文件存儲在外部存儲器中,但在卸載應用程序時會自動刪除。