我想使用recreate()
重新启动我的活动,但我不希望它执行onSaveInstanceState()
。所以,它真的很喜欢,推出一项新活动。
在this页上,答案说:
从API级别11(Honeycomb)开始,您可以调用活动的recreate()方法(感谢这个答案)。
recreate()方法就像配置更改一样,因此如果适用,也会调用onSaveInstanceState()和onRestoreInstanceState()方法。
有没有其他方法可以在不调用onSaveInstanceState()
的情况下重新启动自身内的活动?
如果你考虑这种不好的做法,你认为我应该怎么做?
答案 0 :(得分:0)
这可能不是一个好方法,但我处理的方式是重用启动活动的意图。 在onCreate方法中定义intent intentOLD并使用 intentOLD = getIntent()以检索启动此活动的Intent。然后,当您想要重新启动活动时,请调用finish(); startActivity(intentOLD);
答案 1 :(得分:0)
看看here。
始终会调用 onSavedIstanceState
和onRestoreInstanceState
,但如果您不实现它们,则会重新创建应用,而无需执行任何操作:)
编辑:您可以向他们添加新的保存,例如int。
当你重新加载但你不想恢复任何东西时,你将此值设置为例如1。 当你重新加载并想要保留它时,你可以将其设置为例如0。
而不是onRestoreIstanceState
你检查这个值,如果它是1,你不会调用任何重载调用,如果它是0,你会调用它们:)