android保留活动或保存其状态

时间:2012-11-03 14:21:50

标签: android android-activity state oncreate destroy

我将unity3d和vuforia应用程序移植到Eclipse。我有一个启动活动和一个扩展活动,它确实扩展了vuforia活动,并在清单中设置为MAIN活动。

我有一些应用初始化活动,例如GA跟踪会话打开,并通过请求我自己的服务器来检查新应用的版本。

我的问题是我无法在应用程序生命周期中只运行一次这些初始化内容。

当应用程序启动时,它会加载第一个扩展活动,该活动会在显示启动画面时加载vuforia和unity场景,然后在准备就绪时进入启动活动,向用户显示一些信息。用户读取它然后通过点击再次进入统一活动以获得3d场景。 我可以将此初始化放在扩展活动中或启动活动。从功能的角度来看,两者都是有效的。但是,当用户在启动活动和统一活动之间导航时,我会做什么,以前的活动会被销毁,下次再回到onCreate时会被调用。它发生在它们两个中,所以如果我将我的初始化放到这两个的onCreate中,当用户导航到它们时会多次调用它。

到目前为止我尝试了什么: - 作为startActivity和startActivityForResult的开始意图,两者都表现相同。 - 检查清单上的陈述是否保留历史,就像我在其他一些微笑的问题上看到的那样 - 在清单中我把android:configChanges放到所有可能的值,以确保活动没有重新启动由于一些配置更改,没有帮助 - 尝试使用onSaveInstanceState()并设置一些已经完成init的简单bolean。但是当再次启动活动时没有调用onRestoreInstanceState(),也没有将bundle传递给onCreate方法。保存实例确实发生了我在那里登录。

此外,当我通过按主页按钮离开应用程序或以编程方式将其置于后台或离开游戏市场并通过按下后退按钮从那里返回应用程序时,我的应用程序活动仍然正确加载。因此,只有当我通过调用startActivity或startactivityForResult从我的一个活动内部转到其他活动时,它才会被销毁。

我可以想象团结活动是内存饥饿而且之前是让我们说被摧毁被释放但是在这种情况下我的包应该被保存并传递给onCreate()但它不是。

我很困惑,我一直想弄清楚如何解决这个问题几个小时。我非常感谢任何帮助。谢谢你们。

0 个答案:

没有答案