您的位置:首页 > 移动开发 > Android开发

Android 监听程序的安装和卸载

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

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

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

  

<receiver android:name=".MonitorReceiver" >
   <intent-filter>
    <action android:name="android.intent.action.PACKAGE_ADDED" />
   <action android:name="android.intent.action.PACKAGE_REMOVED" />
    <data android:scheme="package" />
</intent-filter>
</receiver>


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

MonitorReceiver receiver;

@Override
public void onStart(){
super.onStart();

receiver = new MonitorReceiver();
IntentFilter filter = new IntentFilter();

filter.addAction("android.intent.action.PACKAGE_ADDED");
filter.addAction("android.intent.action.PACKAGE_REMOVED");
filter.addDataScheme("package");

this.registerReceiver(receiver, filter);
}

@Override
public void onDestroy(){
if(receiver != null) {
this.unregisterReceiver(receiver);
}
super.onDestroy();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: