当我们的应用在后台的时候需要监听系统的屏幕旋转,在activity里面重写onConfigurationChanged是不能监听到的,这时有两种方式可以实现后台监听。
一、写一个service然后重写onConfigurationChanged,即使程序退到后台,但是屏幕旋转的时候service的监听任然还是会回调
二、动态注册一个广播
这个广播只能在java代码中动态注册,不能在xml文件中注册,否则不会起作用
通过动态注册广播监听
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.intent.action.CONFIGURATION_CHANGED");
registerReceiver(mOrientationReciver,intentFilter);
然后在广播里面判断屏幕的旋转角度
private class orientationReciverextends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "onReceive: "+MainActivity.this.getWindowManager().getDefaultDisplay().getRotation()*90);
}
}
网友评论