我开发了一个Android应用程序。它工作正常,但当用户在他的手机中有高级应用程序杀手并用它杀死应用程序然后当你再次打开它时,应用程序将崩溃。这是因为app杀手正在删除我的应用程序的全局变量的所有内容。有办法阻止这个吗?
其他工作可能就像我的应用程序onResume()我想重新启动应用程序,如果它被app杀手杀死。怎么做?
答案 0 :(得分:0)
如果您的应用被杀,下次启动它时会从头开始,因此会调用onCreate
。
现在您宣称您的应用已被终止,然后调用onResume
。这没有任何意义。如果调用onResume
,那么您的应用可能已转到后台,因此必须先调用onPause
。检查是否调用onPause
并尝试确定究竟发生了什么。
答案 1 :(得分:0)
你要实现类似这样的回调onSaveInstanceState
-
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("param1", yourGlobalIntVariableName);
outState.putString("param2", yourGlobalStringVariableName);
}
在您的onCreate
中,您应该看看您的savedInstanceState
变量是否为空,如果它不为空,则您需要saveInstanceState
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedInstanceState != null) {
yourGlobalIntVariableName = savedInstanceState.getInt("param1");
yourGlobalStringVariableName = savedInstanceState.getString("param2"));
}
}
那应该解决问题。
如果您有Android 4.0测试设备,请转到设置 - >开发者选项 - > “不要保持活动”
检查一下。然后运行你的应用程序。看看它是否正常工作。理想情况下应该。操作系统可以杀死你的后台堆栈中的一些活动,你的应用程序应该能够处理它。此开发人员选项将为您提供测试此类案例的方法。一旦你进入下一个活动,它就会删除以前的活动内存。