几种常用BroadcastReceiver

来源:互联网 发布:淘宝店铺设计多少钱 编辑:程序博客网 时间:2024/06/08 09:49

开机广播

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

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

[html] view plaincopy
  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 plaincopy
  1. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>  





应用增加广播

[java] view plaincopy
  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 plaincopy
  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 plaincopy
  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 plaincopy
  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 plaincopy
  1. <uses-permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED"/>  



应用重新安装广播

1.本应用重新安装

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

[java] view plaincopy
  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 plaincopy
  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