我想在卸载应用后删除共享偏好。而且我不想使用 android:allowBackup =" false" 选项,因为我读到它不适合生产中的应用。有没有其他方法可以在卸载后删除应用程序的共享首选项,同时仍保留备份(升级期间)
答案 0 :(得分:0)
您可以使用 BroadcastReceiver
将此添加到 Manifest
<receiver android:name=".DeleteReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package"/>
</intent-filter>
</receiver>
和 BroadcastReceiver
class
public class DeleteReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//remove preferences
SharedPreferences settings = context.getSharedPreferences("PreferencesName", Context.MODE_PRIVATE);
settings.edit().clear().commit();
}
}
更新:经过一些研究后我发现你cannot receive something when your app is deleted。
正在删除的包不会收到此Intent。
唯一的解决方案是使用第二个应用程序来获取它。抱歉令人失望。
因此,在您的情况下,android:allowBackup=“false”
是唯一方式来删除设置。