保存活动gui state

时间:2010-02-10 10:12:26

标签: android

所以我正在写一个应用程序。我希望能够按下主页键离开应用程序,暂时执行其他操作,然后通过从启动器中选择它来返回应用程序。我希望应用程序具有与我离开时完全相同的状态。 为此,我已经在onSaveInstanceState()中创建了一个bundle,我在onCreate()中使用了这个bundle(当然是检查它是否为null)。

这是我期望发生的事情......
- 我从Eclipse安装应用程序 - 我从发射器启动应用程序
- 我按下主页键
-onSaveInstanceState()被caled,我写了一个包 - 我再次从启动器启动应用程序 -onCreate()被调用,我得到了我之前写过的包 - 我用那个包来恢复我的ui

这是发生的事情...... - 我安装了应用程序 - 我从发射器启动应用程序
- 我按下主页键
调用-onSaveInstanceState(),写入bundle - 我再次启动应用程序
-onCreate()在没有我的包的情况下被调用 - 似乎已经发生的事情是,为此任务已将新活动放入堆栈 - 我按后退按钮
- 我刚刚启动的活动被销毁,我首先启动的活动显示正确的状态! - 重新按下直到返回主屏幕 - 生命周期现在可以预期!即使重启后,我也会在安装新版本的应用程序时失败

只有在安装后才可能做到这一点!

2 个答案:

答案 0 :(得分:2)

过去一个月左右,有几个人在这里提出了非常相似的问题 您需要确保Eclipse不处理任何Activity启动。

在Eclipse中编辑启动配置,将“启动操作”从“启动默认活动”更改为“不执行任何操作”。

或者您可以手动安装APK。

答案 1 :(得分:0)

加,这是问题所在 http://code.google.com/p/android/issues/detail?id=2373
当从eclipse启动应用程序时,它会像我描述的那样出错。创建一个apk并执行“adb install ... apk”,它完全按预期工作