Android广播的一些事

1. 开机启动广播

大家都知道,1.申请权限 2.注册广播

  1. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>  
  2.   
  3. <receiver   android:name=".StartServiceAtBootReceiver"  
  4.   android:enabled="true"   
  5.   android:exported="false"  
  6.   android:label="StartServiceAtBootReceiver">  
  7.   <intent-filter>  
  8.     <action android:name="android.intent.action._BOOT_COMPLETED"/>  
  9.    </intent-filter>  
  10. </receiver>  
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

<receiver   android:name=".StartServiceAtBootReceiver"
  android:enabled="true" 
  android:exported="false"
  android:label="StartServiceAtBootReceiver">
  <intent-filter>
    <action android:name="android.intent.action._BOOT_COMPLETED"/>
   </intent-filter>
</receiver>

实际上, 不申请以下权限, 开机一样会启动。这可能是android的一个Bug。

android.permission.RECEIVE_BOOT_COMPLETED

参考:http://stackoverflow.com/questions/4635353/is-android-permission-receive-boot-completed-not-required


2. 屏幕开启/关闭广播

在Manifest.xml中注册不行,在代码中注册才行. 

  1. <receiver android:name="IntentReceiver">  
  2.                     <intent-filter>  
  3.                             <action android:name="android.intent.action.SCREEN_ON"></action>  
  4.                     </intent-filter>  
  5.                 </receiver>  
<receiver android:name="IntentReceiver">
                    <intent-filter>
                            <action android:name="android.intent.action.SCREEN_ON"></action>
                    </intent-filter>
                </receiver>

像这样注册,当屏幕点亮时,是无法接收到广播的。只有这样才行..

  1. registerReceiver(new BroadcastReceiver() {  
  2.   
  3.   @Override  
  4.   public void onReceive(Context context, Intent intent) {  
  5.     // ...    
  6.   }  
  7. }, new IntentFilter(Intent.ACTION_SCREEN_ON));  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值