解決完了這個bug,還有下一個,永遠改不完。
趁此趕緊來記錄一下這個問題的解決辦法。
問題:
最近寫的是一個即使通訊的產品,早上來到公司突然發現郵箱裏多了一個bug:
- 在設置-應用-權限管理中禁用讀寫手機存儲,app出現異常,用戶掉線
what?什麼鬼?
馬上自測,果然,用戶的登錄狀態變成了離線。。。
而實例對象也被置爲null。。。
處理辦法:
應用被系統殺死時,會自動調用OnSaveInstanceState,把一些頁面和fragment保存進去。當執行OnCreate時,其形參bundle會把保存的數據釋放出來。此時bundle不爲null。
那麼就可以在baseActivity的OnCreate中判斷形參bundle是否爲null。讓其再次重新啓動應用就好了。
下面是代碼:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
reLoadApp();
}
}
private void reLoadApp() {
App.finishAllAct();
skipActivity(StartActivity.class);
}