当用户单击我的应用程序中的按钮时,它将更改正在处理的文档中的一些数据,此时我希望活动重建其 UI。如果可能的话,我想这样做,因为对于任何给定的更改,究竟需要更新哪些视图将很难提前知道。
我尝试获取intent
, 调用finish()
活动,然后StartActivity
以相同的意图调用。使用这种方法,我可以禁用所有待处理的转换,所以它很好,除了它创建了一个新的活动实例,它的状态无法恢复(除非我做了一些非常愚蠢的事情,比如将它保存到首选项)。这是不可接受的,因为该活动包含一个ViewPager,每当我更新某些内容时,它使用此方法返回到第 0 页。
接下来我尝试使用Activity.Recreate()
. 这解决了围绕状态未保存的问题,因为它似乎是活动的同一实例。但在这种情况下,我无法弄清楚如何禁用所有动画,所以屏幕上总是有一个闪光。
有没有办法让an activity.recreate()
用户看起来无缝通话?或者,还有更好的方法?由于这一切都在viewpager中,因此刷新片段也可以正常工作,但这不是片段类本身发生的,而是许多对象都提供了 UI 的一部分。