我正在为我的应用程序实现一个允许用户切换主题的设置,用户在切换主题时将处于设置活动中,并且在任务上方将是主屏幕。
我希望当前activity
在主题更改后重新启动,但我也希望主屏幕重新启动,因此当用户从设置页面返回时,他会看到主屏幕显示新主屏幕活性。
重新启动当前activity
is easy,但如何强制重置当前activities
中的上一个task
?
我尝试将FLAG_ACTIVITY_CLEAR_TOP
/ FLAG_ACTIVITY_CLEAR_TASK
添加到intent
,但它会从task
删除这些活动,所以当我从设置中回放时,我已返回主屏幕,而不是我的应用程序主屏幕。
感谢。
答案 0 :(得分:2)
也许您可以检查是否有任何配置更改onRestart
方法,因此当您按下时,应该触发此方法。
答案 1 :(得分:2)
一种可能的方法是在用户返回主活动时重新启动主活动。如果您使用startActivityForResult
打开首选项活动,则在完成该活动时,您可以使用setResult
告知主要活动是否需要重新启动。最后,在主活动的onActivityResult
中,您可以查看传递的结果,并在必要时重新启动主要活动。