如何在不保存实例的情况下重新创建自身内的活动?

时间:2015-08-27 12:26:01

标签: android android-activity restart

我想使用recreate()重新启动我的活动,但我不希望它执行onSaveInstanceState()。所以,它真的很喜欢,推出一项新活动。

this页上,答案说:

  

从API级别11(Honeycomb)开始,您可以调用活动的recreate()方法(感谢这个答案)。

     

recreate()方法就像配置更改一样,因此如果适用,也会调用onSaveInstanceState()和onRestoreInstanceState()方法。

有没有其他方法可以在不调用onSaveInstanceState()的情况下重新启动自身内的活动? 如果你考虑这种不好的做法,你认为我应该怎么做?

2 个答案:

答案 0 :(得分:0)

这可能不是一个好方法,但我处理的方式是重用启动活动的意图。 在onCreate方法中定义intent intentOLD并使用 intentOLD = getIntent()以检索启动此活动的Intent。然后,当您想要重新启动活动时,请调用finish(); startActivity(intentOLD);

答案 1 :(得分:0)

看看here

始终会调用

onSavedIstanceStateonRestoreInstanceState,但如果您不实现它们,则会重新创建应用,而无需执行任何操作:)

编辑:您可以向他们添加新的保存,例如int。

当你重新加载但你不想恢复任何东西时,你将此值设置为例如1。 当你重新加载并想要保留它时,你可以将其设置为例如0。

而不是onRestoreIstanceState你检查这个值,如果它是1,你不会调用任何重载调用,如果它是0,你会调用它们:)