android:allowBackup属性的趟坑

最近在做海外Android业务的时候遇到了一个很玄学的bug问题,就是我在卸载应用的情况下,再次重新安装应用的时候,里面始终存在一个token文件,就会走token登录(token无效登录失败),即使你token覆盖了原来的token,即使你卸载了APP没有这个文件,再重新安装的时候,还是会有这个文件,而且这个文件里面始终有一段相同的加密的字符串(token),而且我在APP初始化的时候没有做任何操作,这真的是一个很玄学的问题。

遇到这种问题,我也是头疼,只能一步步分析应用的启动过程,发现没有任何创建这个文件或者向这个文件进行的读写操作,在网上Google了好久也没有相应的答案。实在没办法,我就一步步检查配置,从AndroidManifest开始看配置。突然发现一个属性android:allowBackup="true"。我首先想到的就是去掉这个属性,然后重新卸载安装应用,发现还是没有用,一打开应用就还是自动创建了这个文件,关键是里面的内容更上几次卸载前的内容一模一样,我特么都懵逼了,难道特么的手机还能自动创建文件不成,于是我特么Google了一下这个属性配置: Google官方文档.png 咋一看就是个简单的备份,但是仔细往下看: Google官方文档.png 我擦,还有Google云端备份,然后我去检查了一下我的手机设置里面的,果然Google云端备份打开了,我关了之后,再卸载重装,发现不会再有之前的那个token文件了,终于大功告成了,但是我转念一想,不可能让国外的用户主动关掉Google云端备份吧,于是我把android:allowBackup属性设置成false,再重复之前的操作发现没问题了,于是我继续看了下Google官方文档说明: Google官方文档.png 可以看出,android:allowBackup属性默认为true,即使你去掉这个标签还是会出现上面遇到的问题,所以一般在应用里面,特别是国外的应用,如果真的用不到备份数据的话,最好还是设置一下android:allowBackup="false",可以避免莫名其妙的bug问题。

参考链接:通过自动备份功能备份用户数据

猜你喜欢

转载自juejin.im/post/7078133412388667428
今日推荐