如果活动停止,则重新创建传递给getIntent()的内容

jsb*_*jsb 5 android android-intent

当我通过Intent BundleExtra创建它时,我将一个布尔值传递给我的Activity.现在查看活动生命周期,如果我的活动停止(onStop),那么另一个应用程序需要内存,以便应用程序进程被终止,然后用户导航到activity(onCreate).最后的onCreate会包含我传递的原始布尔值吗?我想如果我想保存布尔值我需要保存它OnSaveInstanceState,对吗?

Tad*_*Tad 5

实际上,当您重新创建活动时,仍将使用原始意图。 getIntent()将返回与初次创建时相同的意图。但是,如果您要在重新创建活动时保留其他数据,则需要使用进行保存saveInstanceState()。您可以通过在运行活动的情况下简单地旋转设备来验证这一点,因为它将被破坏并以相同的意图重新创建。有关更多信息,请参见此处


Mau*_*ähä 2

由于这个原因我会使用 onPause() (来自文档)

请注意,在 onPause() 而不是 onSaveInstanceState(Bundle) 中保存持久数据非常重要,因为后者不是生命周期回调的一部分,因此不会在其文档中描述的每种情况下都被调用。

然后再次将其读回,例如onCreate()从数据库或存储它的其他资源中。

因此,根据布尔值的重要性,您将使用您想要的保存机制......对于持久状态:http ://developer.android.com/reference/android/app/Activity.html#SavingPercientState

对于 UI 状态(例如简单文本),选择的使用方式onSaveInstanceState如下所述:使用 Save Instance State 保存 Android Activity 状态

总结一下:当进程被杀死时 boolean = gone 如果没有保存:)