【问题标题】:Android SDK launch same instance of activityAndroid SDK 启动相同的活动实例
【发布时间】:2012-03-28 23:01:58
【问题描述】:

即使用户来回导航,我也需要启动同一个活动实例。用户在一堆不同的活动(A、B、C)中导航,但是当他转到其中一个活动时,它将显示该活动的相同实例(如静态活动),仅调用 onResume。

【问题讨论】:

  • 这是活动的默认行为。只要不调用finish(),Activity就会进入“暂停”状态,再次调用时会恢复。

标签: android android-activity instance launch


【解决方案1】:

您不能强制您的 Activity 在 onResume() 中启动。但是,您可以做的是在 onPause() 和 onStop() 中将 Activity 的状态保存到 Bundle 中。然后,在 onStart() 中读取这个 Bundle 来获取你的 Activity 的状态。

【讨论】:

  • 我相信 Karim Varela 的意思是你可以将状态保存在 onSaveInstanceState(Bundle outState) 中。 Android 将尽最大努力恢复 Activity 与它离开时完全一样(即导航到新 Activity,放入后台),但如果不能,您必须确保使 Activity 像它被保存在 outState 包中。如果你还没有这样做,你应该阅读关于 Activity 生命周期的文档developer.android.com/reference/android/app/Activity.html 使用生命周期,不要试图绕过它。
【解决方案2】:

最接近这一点的方法是在与startActivity() 一起使用的Intent 中使用FLAG_ACTIVITY_REORDER_TO_FRONT

但是,这将调用不止onResume()。至少,您的活动将使用onRestart()onStart() 调用,假设前台的内容占据了整个屏幕。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多