廣播接受者的註冊有兩種方式:
1.採用清單文件註冊的廣播接收者,只要應用程序被部署到手機上,廣播接收者就生效了
2.採用代碼的方式註冊的廣播接收者,生命週期與激活他的這段代碼所在的組件生命週期相同
因爲我們代碼註冊一個廣播時使用:this.registeBroadcastReceiver()那麼我們爲了保證鎖屏的廣播接收者長期的能夠接收到廣播事件,保證調用者必須長時間在系統存活(採用服務的方式)
步驟:
1.創建一個service類,在onCreate()方法中使用registerReceiver(receiver,filter);註冊一個廣播接收者
receiver:我們可以定義一個廣播接收者類繼承BroadcastReceiver把我們要處理的方法事件寫在onReceive()方法中
filter:廣播接收者的意圖過濾器
IntentFilter filter = new IntentFilter();
filter.setPriority(1000);設置優先級最高1000
filter.addAction(Intent.ACTION_SCREEN_OFF);//設置關心的動作,鎖屏
2.在service類中的onDestroy()方法中反註冊這個廣播this.unregisterReceiver(receiver);//防止log異常
3.在activity中開啓服務或者關閉服務
Private Intent lockscreenMonitorIntent = new Intent(this,LockSreenMonitor.class);
startService(lockscreenMonitorIntent );
stopService(lockscreenMonitorIntent );