如果我们不想在配置更改期间重新启动活动,我们可以设置标记android:configChanges
;
如果我们需要重新启动活动(即更新资源),我们不应该设置标志。
在什么情况下,我们是否需要在覆盖回调android:configChanges
的同时设置标记onConfigurationChanged()
?
答案 0 :(得分:2)
当您在清单中设置android:configChanges
时,这意味着您告诉系统您将自己在Activity
手动处理配置更改。
来自android:configChanges
的{{3}}:
列出活动将自行处理的配置更改。什么时候 在运行时发生配置更改,活动将关闭 默认情况下重新启动,但使用此声明配置 属性将阻止活动重新启动。相反, 活动仍在运行,其onConfigurationChanged()方法是 调用。
因此,如果您在清单中设置configChanges
,则必须覆盖onConfigurationChanged()
回调并处理更改。否则,系统将自动处理更改 - 例如加载适当的资源 - 并且您不必覆盖onConfigurationChanged()
回调。
同样来自doc:
应避免使用此属性,仅用作最后的手段。