Android应用程序创建两次

时间:2011-11-20 06:12:04

标签: java android

在我的应用程序中,我有许多活动,Application用于存储全局变量,如currentUser等。

有时,当我按Home键然后通过Recent返回我的应用程序时,再次创建一个Application对象,使用null-field而不是currentUser。

我该如何避免?

2 个答案:

答案 0 :(得分:0)

当你的应用程序进入后台时,Android可以选择随时保留它或完全关闭它。通常,当一个单独的应用程序被带到资源密集型的前台时,Android将开始杀死后台的其他应用程序并且不会主动执行任何操作。

真正阻止Android可能杀死您的应用的唯一方法是在您的应用中运行一个请求位于前台的服务。当然,通过这样做,您的应用程序将需要在状态栏中显示一个图标。

外卖:最好的办法是将代表currentUser的密钥存储在Preference或数据存储中,而不是依赖于Application对象上保存的全局变量。

答案 1 :(得分:0)

你应该使用onPause()方法将任何持久数据写入存储,和/或你应该实现onSaveInstanceState(Bundle),它在活动进入后台之前调用,这样你就可以保存任何动态数据了你的活动进入给定的Bundle,稍后将收到onCreate(Bundle)。

有关活动生命周期here

的更多信息