applyNewConfigurationLocked原理
时间: 2023-07-07 16:03:26 浏览: 45
applyNewConfigurationLocked() 是 Android 系统中的一个方法,它是在系统运行时动态修改配置(Configuration)的方法,例如:屏幕方向、语言、字体大小等。它的原理如下:
1. 在 Android 系统中,每个应用程序都有自己的资源文件,包括布局文件、图片等。当应用程序在运行时需要根据配置的不同加载不同的资源文件。
2. 当用户修改了系统配置后,系统会通过 ActivityManagerService 发送广播通知所有的应用程序系统配置已经改变。
3. 应用程序接收到广播后,会调用 ActivityManagerService 的 updateConfigurationLocked() 方法,将新的配置信息传递给系统。updateConfigurationLocked() 方法会将新的配置信息更新到 ActivityThread 的 sCurrentActivityThread 对象中,同时调用 ActivityThread 的 handleConfigurationChanged() 方法。
4. handleConfigurationChanged() 方法会遍历所有的 Activity,调用它们的 onConfigurationChanged() 方法,将新的配置信息传递给它们。
5. 在 onConfigurationChanged() 方法中,应用程序可以根据新的配置信息更新界面资源,例如重新加载布局文件、修改字体大小等。
6. 最后,应用程序需要调用 Context 的 applyOverrideConfiguration() 方法,将新的配置信息应用到当前的 Context 中。applyOverrideConfiguration() 方法会将新的配置信息保存到 ContextImpl 对象中,并重新加载资源文件。
总之,applyNewConfigurationLocked() 方法是 Android 系统中动态修改配置的核心方法,它通过一系列的调用,将新的配置信息传递给应用程序,并更新应用程序的界面资源。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)