在我的应用程序中,当用户按下HOME键并在一段时间后返回应用程序时,我的应用程序会在各种地点和活动上提供NullPointerExceptions。我知道我的应用程序被操作系统杀死以释放一些资源。现在我希望当用户再次回到应用程序并且应用程序先前被杀死时,我怎么能检测到我的应用程序被杀死以便我可以重新加载不同的资源?
答案 0 :(得分:6)
调用onCreate (Bundle savedInstanceState)
时,请检查savedInstanceState
是否为空。正如onCreate所述:
savedInstanceState 如果之后正在重新初始化活动 以前被关闭然后这个Bundle包含它最多的数据 最近在onSaveInstanceState(Bundle)中提供。注意:否则它 是空的。
另请参阅onSaveInstanceState(),它不是正常生命周期的一部分,但在活动被杀之前被调用。
注意:如果用户做了A ----> B ----> C --back - > B ----> C,第二次创建C时,传递的包将是null
,因为它是一个新实例,在被杀死后不再重新创建。
答案 1 :(得分:3)
基本上:请查看此页面上的图片:http://developer.android.com/reference/android/app/Activity.html
在不同情况下调用的各种函数是onCreate
,onStart
和onResume
。
答案 2 :(得分:0)
我的建议是:实施您自己的Application
,如果调用onCreate()
,该应用程序将在后台被杀死