Android 无法获得 SCREEN_ON和SCREEN_OFF广播问题

转自:http://blog.csdn.net/huangliop/article/details/7290931

这两个事件有点特殊,Recevier的注册必须写在代码里面,不能也在在Manifest.xml文件里面。也就是是必须用非常驻型注册。

这样就代理一个问题:当软件退出后,这个Recevier就不会工做了,也就不能接收到广播的事件了。


解决办法是:将注册那段代码放在一个Service里面去进行,这样只要Service不停止,这个Recevier就会一直工作。

注册代码如下:

[java] view plain copy print ?
  1. ScreenOnBroadcastReciver sOnBroadcastReciver=new ScreenOnBroadcastReciver();
  2. IntentFilter recevierFilter=new IntentFilter();
  3. recevierFilter.addAction(Intent.ACTION_SCREEN_ON);
  4. recevierFilter.addAction(Intent.ACTION_SCREEN_OFF);
  5. registerReceiver(sOnBroadcastReciver, recevierFilter);
        ScreenOnBroadcastReciver sOnBroadcastReciver=new ScreenOnBroadcastReciver();
        IntentFilter recevierFilter=new IntentFilter();
        recevierFilter.addAction(Intent.ACTION_SCREEN_ON);
        recevierFilter.addAction(Intent.ACTION_SCREEN_OFF);
        registerReceiver(sOnBroadcastReciver, recevierFilter);


 

上面说的这种情况,在Android里面还有一些。我目前只知道这两个广播。

 

你可能感兴趣的:(Android)