我有一个应用程序在用于存储数据对象的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()
删除。这些目录中的文件存储在外部存储器中,但在卸载应用程序时会自动删除。