应用程序卸载后删除共享首选项而不使用android:allowBackup =" false"

时间:2017-10-18 08:32:42

标签: android sharedpreferences uninstall android-backup-service

我想在卸载应用后删除共享偏好。而且我不想使用 android:allowBackup =" false" 选项,因为我读到它不适合生产中的应用。有没有其他方法可以在卸载后删除应用程序的共享首选项,同时仍保留备份(升级期间)

1 个答案:

答案 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”唯一方式来删除设置。