最近在做海外Android業(yè)務(wù)的時(shí)候遇到了一個(gè)很玄學(xué)的bug問題,就是我在卸載應(yīng)用的情況下,再次重新安裝應(yīng)用的時(shí)候,里面始終存在一個(gè)token文件,就會(huì)走token登錄(token無效登錄失敗),即使你token覆蓋了原來的token,即使你卸載了APP沒有這個(gè)文件,再重新安裝的時(shí)候,還是會(huì)有這個(gè)文件,而且這個(gè)文件里面始終有一段相同的加密的字符串(token),而且我在APP初始化的時(shí)候沒有做任何操作,這真的是一個(gè)很玄學(xué)的問題。
遇到這種問題,我也是頭疼,只能一步步分析應(yīng)用的啟動(dòng)過程,發(fā)現(xiàn)沒有任何創(chuàng)建這個(gè)文件或者向這個(gè)文件進(jìn)行的讀寫操作,在網(wǎng)上Google了好久也沒有相應(yīng)的答案。實(shí)在沒辦法,我就一步步檢查配置,從AndroidManifest
開始看配置。突然發(fā)現(xiàn)一個(gè)屬性android:allowBackup="true"
。我首先想到的就是去掉這個(gè)屬性,然后重新卸載安裝應(yīng)用,發(fā)現(xiàn)還是沒有用,一打開應(yīng)用就還是自動(dòng)創(chuàng)建了這個(gè)文件,關(guān)鍵是里面的內(nèi)容更上幾次卸載前的內(nèi)容一模一樣,我特么都懵逼了,難道特么的手機(jī)還能自動(dòng)創(chuàng)建文件不成,于是我特么Google了一下這個(gè)屬性配置:
Google官方文檔.png
咋一看就是個(gè)簡(jiǎn)單的備份,但是仔細(xì)往下看:
Google官方文檔.png
我擦,還有Google云端備份,然后我去檢查了一下我的手機(jī)設(shè)置里面的,果然Google云端備份打開了,我關(guān)了之后,再卸載重裝,發(fā)現(xiàn)不會(huì)再有之前的那個(gè)token文件了,終于大功告成了,但是我轉(zhuǎn)念一想,不可能讓國(guó)外的用戶主動(dòng)關(guān)掉Google云端備份吧,于是我把
android:allowBackup
屬性設(shè)置成false,再重復(fù)之前的操作發(fā)現(xiàn)沒問題了,于是我繼續(xù)看了下Google官方文檔說明:Google官方文檔.png
可以看出,
android:allowBackup
屬性默認(rèn)為true
,即使你去掉這個(gè)標(biāo)簽還是會(huì)出現(xiàn)上面遇到的問題,所以一般在應(yīng)用里面,特別是國(guó)外的應(yīng)用,如果真的用不到備份數(shù)據(jù)的話,最好還是設(shè)置一下android:allowBackup="false"
,可以避免莫名其妙的bug問題。