通过广播获取Android屏幕旋转事件
生活随笔
收集整理的這篇文章主要介紹了
通过广播获取Android屏幕旋转事件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ?Android獲取系統屏幕旋轉的方式有幾種,其中比較常見的是通過重寫Activity中的onConfigurationChanged方法,但是這種方法有個缺陷,當測試程序在后臺運行的時候不能捕捉到系統屏幕方向旋轉。那么,既然屏幕旋轉屬于系統事件,如果需要在進入到其他程序中也能讓測試程序捕捉到系統屏幕旋轉,可以通過接收系統廣播的方式來實現。
首先,寫一個廣播接收的類:class MyBroadcastReceive extends BroadcastReceiver{@Overridepublic void onReceive(Context arg0, Intent arg1) {// TODO Auto-generated method stubmakeToast("屏幕旋轉角度:" + String.valueOf(AirLinkAct.this.getWindowManager().getDefaultDisplay().getRotation() * 90));}}
其中this.getWindowManager().getDefaultDisplay().getRotation()是獲取當前屏幕旋轉的角度
注冊廣播有兩種方式,一種是通過在AndroidManifest.xml文件中注冊,一種是通過java代碼中注冊,注意,這里能獲取屏幕旋轉的系統廣播是?
android.intent.action.CONFIGURATION_CHANGED
當前設備設置改變時都會發送這個廣播,要注意的是 ?這個廣播只能在java代碼中注冊,不能再xml文件中注冊,一定要注意
使用方式: 首先定義接收廣播類的對象 private?MyBroadcastReceive?broadcastReceive; 然后 在 onCreate函數中 注冊 broadcastReceive = new MyBroadcastReceive(); //注冊廣播接收,注意:要監聽這個系統廣播就必須用這種方式來注冊,不能再xml中注冊,否則不能生效 IntentFilter filter = new IntentFilter(); filter.addAction("android.intent.action.CONFIGURATION_CHANGED"); registerReceiver(broadcastReceive,filter);
最后,在AndroidManifest.xml中添加權限 <uses-permission?android:name="android.permission.CHANGE_CONFIGURATION"/>
首先,寫一個廣播接收的類:class MyBroadcastReceive extends BroadcastReceiver{@Overridepublic void onReceive(Context arg0, Intent arg1) {// TODO Auto-generated method stubmakeToast("屏幕旋轉角度:" + String.valueOf(AirLinkAct.this.getWindowManager().getDefaultDisplay().getRotation() * 90));}}
其中this.getWindowManager().getDefaultDisplay().getRotation()是獲取當前屏幕旋轉的角度
注冊廣播有兩種方式,一種是通過在AndroidManifest.xml文件中注冊,一種是通過java代碼中注冊,注意,這里能獲取屏幕旋轉的系統廣播是?
android.intent.action.CONFIGURATION_CHANGED
當前設備設置改變時都會發送這個廣播,要注意的是 ?這個廣播只能在java代碼中注冊,不能再xml文件中注冊,一定要注意
使用方式: 首先定義接收廣播類的對象 private?MyBroadcastReceive?broadcastReceive; 然后 在 onCreate函數中 注冊 broadcastReceive = new MyBroadcastReceive(); //注冊廣播接收,注意:要監聽這個系統廣播就必須用這種方式來注冊,不能再xml中注冊,否則不能生效 IntentFilter filter = new IntentFilter(); filter.addAction("android.intent.action.CONFIGURATION_CHANGED"); registerReceiver(broadcastReceive,filter);
最后,在AndroidManifest.xml中添加權限 <uses-permission?android:name="android.permission.CHANGE_CONFIGURATION"/>
總結
以上是生活随笔為你收集整理的通过广播获取Android屏幕旋转事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SVM支持向量机【直观理解】
- 下一篇: Android Studio运行报错In