解决完了这个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);
}