Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何禁用作为第三方SDK分发的库项目的自动备份?_Android_Android Library_Aar_Android Sharedpreferences - Fatal编程技术网

Android 如何禁用作为第三方SDK分发的库项目的自动备份?

Android 如何禁用作为第三方SDK分发的库项目的自动备份?,android,android-library,aar,android-sharedpreferences,Android,Android Library,Aar,Android Sharedpreferences,我目前正在开发一个android库项目(aar),该项目将被第三方用作SDK。在内部,我使用SharedReferences存储一些特定于我的库的数据: SharedPreferences prefs = context.getSharedPreferences("my.library.prefs", Context.MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); editor.putString("my.librar

我目前正在开发一个android库项目(aar),该项目将被第三方用作SDK。在内部,我使用SharedReferences存储一些特定于我的库的数据:

SharedPreferences prefs = context.getSharedPreferences("my.library.prefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("my.library.data", "test_data");
editor.apply();
在Android Marshmallow及以上设备上,我注意到,即使在卸载并重新安装主机应用程序(使用我的库)之后,我以前保存的一些数据也会自动恢复。通过研究stackoverflow,我发现在较新的设备上,自动备份几乎可以恢复存储在私有沙箱中的所有内容,包括SharedReference文件


要将我的库的文件排除在自动备份行为之外,最合适的方法是什么?请记住,我的库的用户可能有他们自己想要备份的文件。

不幸的是,没有一个好的答案

您可以将
android:fullBackupContent=“@xml/backup\u rules”
添加到
),这将自行工作。但是,如果库的使用者定义了自己的备份规则,则在清单合并期间,您的备份规则将被覆盖

我希望您能够这样做的方式是为库中的路径定义一个字符串(
my.library.prefs.xml
),然后告诉您的消费应用程序在其备份规则中引用该字符串。不幸的是,您似乎无法在该文件中使用字符串引用<代码>
无法正确解析

您所能做的最好的事情就是在自述文件中硬编码路径,并要求您的消费者将其排除在外