锁屏与亮屏广播的注意点

锁屏广播事件是一个特殊的广播事件,在清单文件中注册是不会生效的,只能在代码中进行注册

这里我通过开启服务,在服务中再注册广播:

/**
 * 锁屏服务
 */
public class ScreenService extends Service {
    
    private ScreenOffReceiver recerver;
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
    
    @Override
    public void onCreate() {
        super.onCreate();
        //注册锁屏的广播,锁屏广播事件是一个特殊的广播事件,在清单文件中注册是不会生效的
        recerver = new ScreenOffReceiver();
        //锁屏的意图过滤,ACTION_SCREEN_ON就为亮屏了
        IntentFilter intentFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
        registerReceiver(recerver, intentFilter);
    }
    
    @Override
    public void onDestroy() {
        super.onDestroy();
        unregisterReceiver(recerver);//取消注册
    }
    
    /**
     * 锁屏广播的接收
     */
    private class ScreenOffReceiver extends BroadcastReceiver{

        @Override
        public void onReceive(Context context, Intent intent) {
            System.out.println("锁屏了");
        }
        
    }
}

最后注册服务,执行 startService(new Intent(this,ScreenService.class));就能开启了,

posted @ 2016-09-07 10:04  ts-android  阅读(616)  评论(0编辑  收藏  举报