在Android中,configChanges属性用于指定Activity在特定配置更改时是否应该处理这些更改,或者更改是否应该由系统自动处理。
当Activity的configChanges属性被设置为具体的配置更改类型时,如orientation、screenSize等,Activity在此类配置更改时不会重新创建,而是会调用Activity的onConfigurationChanged()方法来处理配置更改。这样可以避免Activity的重新创建和重新初始化,提高了性能。
然而,当Activity的configChanges属性被设置为"keyboardHidden"或者"orientation|keyboardHidden"这样的值时,Activity将继续重新创建,并且在重新创建之前会调用onConfigurationChanged()方法。这是因为键盘的隐藏状态更改可能会影响到布局资源的选择,所以需要重新创建Activity。
总之,configChanges属性用于控制Activity在特定配置更改时的行为,可以避免Activity的重新创建和重新初始化,提高了性能。