几种常用BroadcastReceiver

开机广播

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

public class BootBroadcasrReceiver extends BroadcastReceiver {
	@Override
	public 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 {
	@Override
	public 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 {
	@Override
	public 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 {
	@Override
	public 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.其他应用重新安装

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值