因此,在我的应用程序中有一个用于创建新用户的表单,其中包含有关用户的相关详细信息和信息。这里没有问题,只是当用户离开活动时没有按下确认按钮就会发生什么。Android - 生命周期和保存实例状态问题
这就是我想做的事:
- 如果用户按下后退按钮,尝试将所有数据保存到数据库,并通知用户。
- 如果活动被中断(即通过电话),请将所有数据保存到临时位置,以便当活动再次位于堆栈的顶部时,没有任何东西看起来已经改变(但数据仍然没有尚未保存到数据库)。
- 如果活动在后台处理时遇到更多资源,请执行与上述第2点相同的操作(即当活动再次启动时,看起来没有任何变化)。
- 如果整个应用程序再次启动(通过再次单击图标),并且存在上述第2点或第3点的临时数据,请导航到“创建用户”活动并显示数据,就好像没有更改。
这里是如何我目前正在试图做到这一点:
- 使用
onDestroy()
和isFinishing()
功能找到活动时被打死,覆盖上述第1点(至,然后尽力挽救所有数据)。 - 保存与
onSaveInstanceState
所有数据成束(以覆盖上述第2点) - 是否与
onSaveInstanceState
创建的束生存活性被杀死更多的资源,因此,当其重新产生的先前的状态可被检索(如在点3以上)? - 不知道如何实现点4
任何帮助将大规模赞赏。
干杯!
你确定3和4吗?当用户离开很长时间时,系统重置任务堆栈和清除信息是系统的标准Android行为,无论该活动是否被终止,因此用户期望这一点。 也许一个比打击系统更好的计划是减少单个屏幕上不可保存的信息数量或重新设计流量,这样一切都可以保存onPause() - 也许有一个屏幕来创建用户与他们的名称,只保存点击“创建”按钮,然后在第二个屏幕输入详细信息,所有这些都可以节省onPause()。 – 2010-04-20 17:07:53
与点3和4我想我试图复制消息应用程序时消息保存为草稿。尽管只用用户名和其他重要细节将信息切割成活动,但在其他页面中使用其他选项似乎是有益的。谢谢。 – 2010-04-21 08:48:47