几种常用BroadcastReceiver

开机广播

可在此广播中做开机自启动服务

[java]  view plain copy
  1. public class BootBroadcasrReceiver extends BroadcastReceiver {  
  2.     @Override  
  3.     public void onReceive(Context context, Intent intent) {  
  4.         Log.i("CDH""开机广播");  
  5.     }  
  6. }  

[html]  view plain copy
  1. <receiver android:name=".BootBroadcasrReceiver" >  
  2.     <intent-filter>  
  3.         <!-- 接受系统开机广播 -->  
  4.         <action android:name="android.intent.action.BOOT_COMPLETED"/>  
  5.         <category android:name="android.intent.category.HOME"/>  
  6.     </intent-filter>  
  7. </receiver>  

需要添加权限

[html]  view plain copy
  1. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>  





应用增加广播

[java]  view plain copy
  1. /** 
  2.  * 1.安装其他应用时会收到广播,但安装本应用时不会收到广播 
  3.  * 2.重新安装其他应用时会收到广播,但重新安装本应用时不会收到广播 
  4.  */  
  5. public class PackageAddedBroadcastReceiver extends BroadcastReceiver {  
  6.     @Override  
  7.     public void onReceive(Context context, Intent intent) {  
  8.         Log.i("CDH""应用增加广播");  
  9.         Log.i("CDH""包名:"+intent.getDataString());  
  10.         Log.i("CDH""用户ID:"+intent.getIntExtra(Intent.EXTRA_UID, 0));  
  11.         Log.i("CDH""重新安装应用?:"+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false));  
  12.     }  
  13. }  

[html]  view plain copy
  1. <receiver android:name=".PackageAddedBroadcastReceiver">  
  2.     <intent-filter>  
  3.         <action android:name="android.intent.action.PACKAGE_ADDED"/>  
  4.         <data android:scheme="package"/>  
  5.     </intent-filter>  
  6. </receiver>  



应用卸载广播

[java]  view plain copy
  1. /** 
  2.  * 1.重新安装本应用时会收到广播 
  3.  * 2.重新安装其他应用时会收到广播 
  4.  * 3.其他应用被卸载时会收到广播,但本应用被卸载时不会收到广播 
  5.  */  
  6. public class PackageRemovedBroadcastReceiver extends BroadcastReceiver {  
  7.     @Override  
  8.     public void onReceive(Context context, Intent intent) {  
  9.         Log.i("CDH""应用卸载广播");  
  10.         Log.i("CDH""包名:"+intent.getDataString());  
  11.         Log.i("CDH""用户ID:"+intent.getIntExtra(Intent.EXTRA_UID, 0));  
  12.         Log.i("CDH""整个应用被卸载?:"+intent.getBooleanExtra(Intent.EXTRA_DATA_REMOVED, false));  
  13.         Log.i("CDH""重新安装应用?:"+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false));  
  14.     }  
  15. }  

[html]  view plain copy
  1. <receiver android:name=".PackageRemovedBroadcastReceiver">  
  2.     <intent-filter>  
  3.         <action android:name="android.intent.action.PACKAGE_REMOVED"/>  
  4.         <data android:scheme="package"/>  
  5.     </intent-filter>  
  6. </receiver>  
需要添加权限

[html]  view plain copy
  1. <uses-permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED"/>  



应用重新安装广播

1.本应用重新安装

收到卸载广播 --> 重新安装广播

[java]  view plain copy
  1. /** 
  2.  * 1.重新安装本应用时会收到广播 
  3.  * 2.重新安装其他应用时会收到广播 
  4.  */  
  5. public class PackageReplacedBroadcastReceiver extends BroadcastReceiver {  
  6.     @Override  
  7.     public void onReceive(Context context, Intent intent) {  
  8.         Log.i("CDH""应用替换广播");  
  9.         Log.i("CDH""包名:"+intent.getDataString());  
  10.         Log.i("CDH""用户ID:"+intent.getIntExtra(Intent.EXTRA_UID, 0));  
  11.         Log.i("CDH""重新安装应用?:"+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false));  
  12.     }  
  13. }  

[html]  view plain copy
  1. <receiver android:name=".PackageReplacedBroadcastReceiver">  
  2.     <intent-filter>  
  3.         <action android:name="android.intent.action.PACKAGE_REPLACED"/>  
  4.         <data android:scheme="package"/>  
  5.     </intent-filter>  
  6. </receiver>  




2.其他应用重新安装

收到卸载广播 --> 应用增加广播 --> 重新安装广播

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值