Android 监听系统启动广播

需要注意的是,监听系统广播,需要使用 registerReceiver() 而不是 LocalBroadcastManager 注册,后者的注册只能监听到该apk内动态注册的广播。系统自启动广播目前只支持系统apk监听。

public class BootCompletedReceiver extends BroadcastReceiver {
	private static final String TAG = BootCompletedReceiver.class.getSimpleName();

	@Override
	public void onReceive(Context context, Intent intent) {
		if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
			Log.i(TAG, "system boot completed");
			// 监听到系统启动后,app做一些处理...
		}
	}
}
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<receiver android:name=".receiver.BootCompletedReceiver">
	<intent-filter>
		<action android:name="android.intent.action.BOOT_COMPLETED" />
	</intent-filter>
</receiver>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Framework 可以通过注册监听器来监听进程启动事件。具步骤如下: 1. 创建一个 BroadcastReceiver 类,重写 onReceive() 方法,在方法中处理进程启动事件。 2. 在 AndroidManifest.xml 文件中注册 BroadcastReceiver。 3. 在 BroadcastReceiver 中使用 IntentFilter 监听 ACTION_PACKAGE_ADDED 和 ACTION_PACKAGE_REPLACED 两个系统广播,这两个广播会在应用程序安装或更新时触发。 4. 在 onReceive() 方法中获取 Intent 对象,通过 Intent 对象获取包名信息,即可得知进程已经启动。 以下是一个简单的例子: ``` public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(Intent.ACTION_PACKAGE_ADDED) || action.equals(Intent.ACTION_PACKAGE_REPLACED)) { String packageName = intent.getData().getSchemeSpecificPart(); Log.d("MyBroadcastReceiver", "Package added/replaced: " + packageName); // 在这里处理进程启动事件 } } } ``` 在 AndroidManifest.xml 文件中注册 BroadcastReceiver: ``` <receiver android:name=".MyBroadcastReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED" /> <action android:name="android.intent.action.PACKAGE_REPLACED" /> <data android:scheme="package" /> </intent-filter> </receiver> ``` 注意:需要在 AndroidManifest.xml 文件中声明 RECEIVE_BOOT_COMPLETED 权限,才能够在设备启动时接收广播。 ``` <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值