都是真机测试, 我用锤子T2进入后台 在回来没事, 但是用小米4 进入后台90%的可能性会被销毁,怎么解决?
是不是你的应用很耗电啊,系统会优先杀掉这些应用的
不同的ROM,处理也有区别。有些ROM比较激进,后台程序一进入就可能退出
在内存吃紧时 app在后台很容易被销毁 尤其在6.0系统之后对此作出了大量优化,这个是正常现象。
app在后台被强杀,如果你使用了静态变量 极有可能会报空指针异常 直接导致程序crash。
应用被强杀解决方案:
1.应用被强杀 但是程序应用栈 activity的顺序还是保存了的,首先得把栈清空(具体方案 百度一下就知道了) 然后开启启动界面重新走app流程 (ios就是这么做的)
2.不使用静态变量来保存用户信息、token、状态值 可以将这些状态值序列化到本地,然后使用的时候读取本地信息
在销毁的时候做现场保存,
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//这里做现场保存
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
//这里去除数据,做现场恢复
}
ROM已经这样设计了,那也就没办法了,只能自己重新进入了再做恢复