关闭

几种常用BroadcastReceiver

779人阅读 评论(0) 收藏 举报
分类:

开机广播

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

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

  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>  

需要添加权限

  1. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>  





应用增加广播

  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. }  

  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>  



应用卸载广播

  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. }  

  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>  
需要添加权限
  1. <uses-permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED"/>  



应用重新安装广播

1.本应用重新安装

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

  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. }  

  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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1031194次
    • 积分:9321
    • 等级:
    • 排名:第1942名
    • 原创:31篇
    • 转载:369篇
    • 译文:1篇
    • 评论:139条
    最新评论