当用户环境发生变化,应用程序能作出相应的变化。这样带来的用户体验是非常好的,Configuration类可以用来获取设备状态。但是不能设置监听器,不过Activity却提供了一个onConfiguration(Configuration newCofig)方法,一般只需要重写该方法即可实现系统配置变化相应。
比如实现一个屏幕方向监听:
1.重写Activity的onConfigurationChanged(Configuration newConfig)
2.AndroidManifest.xml中声明configChanges需要监听的配置
权限声明
貌似我设不设都可以
Acitvity中声明
TargetSdkVersion小于13可以android:configChanges="orientation"
大于13必须android:configChanges="orientation|screenSize"
以上2步即可实现在屏幕变化时触发Activity的onConfigurationChanged方法。
另外:
安卓中屏幕发生变化时其实是重新onCreate一个Activity的,但是就会带来问题,数据可能会丢失。于是才有了onConfigurationChanged,屏幕变化无需重新create而会执行onConfigurationChanged来轻量级更新界面。