是否可以使用旧版本的应用程序保存的已保存实例状态创建活动?

时间:2015-11-30 00:36:33

标签: android

传递给savedInstanceState的{​​{1}}参数是否已由不同版本的应用保存?我在文档中找不到任何对此的引用。

如果活动背景化,然后由于内存不足而被杀死,然后安装了新版本的应用程序,然后用户使用最新列表导航回活动,理论上这可能是理所当然的。

在下面的示例代码中,如果版本之间的枚举已更改,或者代码是否安全,Activity.onCreate可以抛出onCreate或设置令人惊讶的状态吗?

ArrayIndexOutOfBoundsException

2 个答案:

答案 0 :(得分:4)

没有。 SavedInstanceState不用于在同一应用程序的新实例之间保留数据。它用于在当前应用程序的“会话”期间临时存储数据。

换句话说,当您的活动被销毁时,例如,当您旋转屏幕时,会存储您提供给savedInstanceState包的值。然后在重新创建活动时检索这些值。

当您完全退出应用程序或安装新版本时,这些值将丢失。

答案 1 :(得分:1)

理论上永远。 在升级(更改)应用程序之前。它已停用,稍后重新开始。 现在Android Studio增加了功能" Instant Run",在这种情况下可能会出现这样的异常。更多我没有任何想法。在我看来,现在不需要这样的检查。我的发展一直没有遇到类似的情况,也没有听说过这样的情况。