学习-简单的监听屏幕方向变化

2016-03-27 / 19 阅读 / Android

当用户环境发生变化,应用程序能作出相应的变化。这样带来的用户体验是非常好的,Configuration类可以用来获取设备状态。但是不能设置监听器,不过Activity却提供了一个onConfiguration(Configuration newCofig)方法,一般只需要重写该方法即可实现系统配置变化相应。

比如实现一个屏幕方向监听:

1.重写Activity的onConfigurationChanged(Configuration newConfig)
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Toast.makeText(this,"屏幕变化了",Toast.LENGTH_SHORT).show();
    }
2.AndroidManifest.xml中声明configChanges需要监听的配置
  • 权限声明

    <uses-permission android:name="ANDROID.PERMISSION.CHANGE_CONFIGURATION"></uses-permission>

    貌似我设不设都可以

  • Acitvity中声明

           <activity
                android:configChanges="orientation|screenSize"
                android:name=".MainActivity">
            </activity>

    TargetSdkVersion小于13可以android:configChanges="orientation"
    大于13必须android:configChanges="orientation|screenSize"

以上2步即可实现在屏幕变化时触发Activity的onConfigurationChanged方法。

另外:

安卓中屏幕发生变化时其实是重新onCreate一个Activity的,但是就会带来问题,数据可能会丢失。于是才有了onConfigurationChanged,屏幕变化无需重新create而会执行onConfigurationChanged来轻量级更新界面。

相关推荐