几种常用BroadcastReceiver

来源:互联网 发布:图像平滑算法matlab 编辑:程序博客网 时间:2024/05/18 03:50

开机广播

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

public class BootBroadcasrReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Log.i("CDH", "开机广播");}}

<receiver android:name=".BootBroadcasrReceiver" ><intent-filter><!-- 接受系统开机广播 --><action android:name="android.intent.action.BOOT_COMPLETED"/>        <category android:name="android.intent.category.HOME"/></intent-filter></receiver>

需要添加权限

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





应用增加广播

/** * 1.安装其他应用时会收到广播,但安装本应用时不会收到广播 * 2.重新安装其他应用时会收到广播,但重新安装本应用时不会收到广播 */public class PackageAddedBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Log.i("CDH", "应用增加广播");Log.i("CDH", "包名:"+intent.getDataString());Log.i("CDH", "用户ID:"+intent.getIntExtra(Intent.EXTRA_UID, 0));Log.i("CDH", "重新安装应用?:"+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false));}}

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



应用卸载广播

/** * 1.重新安装本应用时会收到广播 * 2.重新安装其他应用时会收到广播 * 3.其他应用被卸载时会收到广播,但本应用被卸载时不会收到广播 */public class PackageRemovedBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Log.i("CDH", "应用卸载广播");Log.i("CDH", "包名:"+intent.getDataString());Log.i("CDH", "用户ID:"+intent.getIntExtra(Intent.EXTRA_UID, 0));Log.i("CDH", "整个应用被卸载?:"+intent.getBooleanExtra(Intent.EXTRA_DATA_REMOVED, false));Log.i("CDH", "重新安装应用?:"+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false));}}

<receiver android:name=".PackageRemovedBroadcastReceiver"><intent-filter><action android:name="android.intent.action.PACKAGE_REMOVED"/>        <data android:scheme="package"/></intent-filter></receiver>
需要添加权限

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



应用重新安装广播

1.本应用重新安装

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

/** * 1.重新安装本应用时会收到广播 * 2.重新安装其他应用时会收到广播 */public class PackageReplacedBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Log.i("CDH", "应用替换广播");Log.i("CDH", "包名:"+intent.getDataString());Log.i("CDH", "用户ID:"+intent.getIntExtra(Intent.EXTRA_UID, 0));Log.i("CDH", "重新安装应用?:"+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false));}}

<receiver android:name=".PackageReplacedBroadcastReceiver"><intent-filter><action android:name="android.intent.action.PACKAGE_REPLACED"/>        <data android:scheme="package"/></intent-filter></receiver>




2.其他应用重新安装

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



原创粉丝点击