Android 监听程序的安装和卸载

一、安装和卸载的广播:
      安装程序广播:程序安装完成后会向系统发送一个android.intent.action.PACKAGE_ADDED广播,可通过intent.getDataString()获取所安装的包名
      卸载程序广播:程序卸载完成后会向系统发送一个android.intent.action.PACKAGE_REMOVED广播,可通过intent.getDataString()获得所卸载的包名

 

二、存储安装、卸载信息
     一般将安装或卸载的信息存储到sqlite或sharepreference中,便于后续利用。


三、注册方式:
   方式1:清单文件中
   思路:在AndroidManifest.xml 添加的注册监听,其生命周期默认是整个应用的生命周期。         
   代码:

  

1 <receiver android:name=".MonitorReceiver" > 
2       <intent-filter> 
3             <action android:name="android.intent.action.PACKAGE_ADDED" /> 
4             <action android:name="android.intent.action.PACKAGE_REMOVED" /> 
5             <data android:scheme="package" /> 
6         </intent-filter> 
7 </receiver> 

   方式2、代码方式中
   思路:一般在Activity的onStart()方法中注册监听,在onDestroy()或onStop()方法中注销监听。
   代码:  

 1             MonitorReceiver receiver;
 2             
 3             @Override 
 4             public void onStart(){ 
 5                 super.onStart(); 
 6                  
 7                 receiver = new MonitorReceiver(); 
 8                 IntentFilter filter = new IntentFilter(); 
 9                  
10                 filter.addAction("android.intent.action.PACKAGE_ADDED"); 
11                 filter.addAction("android.intent.action.PACKAGE_REMOVED"); 
12                 filter.addDataScheme("package"); 
13                  
14                 this.registerReceiver(receiver, filter); 
15             }
16  
17             @Override 
18             public void onDestroy(){ 
19                 if(receiver != null) { 
20                     this.unregisterReceiver(receiver); 
21                 }                 
22                 super.onDestroy(); 
23             } 

 

posted on 2014-04-22 16:56  清凉一夏之博客  阅读(470)  评论(0编辑  收藏  举报