android系统 给apk发送广播BOOT_COMPLETED的流程/frameworks/base/core/java/android/app/LoadedApk.java
时间: 2024-01-23 20:03:42 浏览: 188
Android系统给APK发送广播BOOT_COMPLETED的流程如下:
1. 首先,在AndroidManifest.xml文件中注册接收BOOT_COMPLETED广播的组件。在组件的<intent-filter>标签中添加以下内容:
```xml
<action android:name="android.intent.action.BOOT_COMPLETED" />
```
2. 当Android系统启动完成后,会发送一个名为BOOT_COMPLETED的广播。
3. 系统会根据注册的组件信息,找到对应的BroadcastReceiver,并调用其onReceive()方法。
4. 在onReceive()方法中,可以执行一些初始化操作或者启动其他服务或活动。
5. 在onReceive()方法中,可以通过Context的startService()方法启动服务,或者通过Context的startActivity()方法启动活动。
6. 如果需要在应用程序启动完成后执行一些特定的操作,可以在onReceive()方法中添加相应的代码。
7. 注意:为了接收BOOT_COMPLETED广播,应用程序必须至少启动过一次。否则,系统不会发送BOOT_COMPLETED广播给该应用程序。
相关问题
on property:sys.boot_completed=1 bootchart stop # Setup per_boot directory so other .rc could start to use it on boot_completed exec - system system -- /bin/rm -rf /data/per_boot mkdir /data/per_boot 0700 system system encryption=Require key=per_boot_ref start service_network
这段指令是 init.rc 配置文件中的一部分,具体解释如下:
- on property:sys.boot_completed=1:当系统启动完成后,执行以下操作。
- bootchart stop:停止 bootchart 工具的数据收集和记录。
- exec - system system -- /bin/rm -rf /data/per_boot:使用系统权限删除 /data/per_boot 目录及其中的所有文件。
- mkdir /data/per_boot 0700 system system encryption=Require key=per_boot_ref:创建 /data/per_boot 目录,权限为 0700,所属用户和用户组均为 system,启用加密,并使用 per_boot_ref 密钥进行加密。
- start service_network:启动名为 service_network 的服务。
这组命令的作用是在系统启动完成后,停止 bootchart 工具的数据收集和记录,清空 /data/per_boot 目录并重新创建加密的 per_boot 目录,并启动 service_network 服务。该服务的具体作用没有在该配置文件中给出,可能是启动网络相关的服务。
Reason: Broadcast of Intent { act=android.intent.action.BOOT_COMPLETED flg=0x9000010 cmp=com.android.phone/.vvm.VvmSimStateTracker (has extras) }
这是一个安卓系统的广播通知,意味着手机完成了开机启动,并且启动了电话应用程序中的vvm.VvmSimStateTracker组件。vvm代表视觉语音邮箱,是一种电话服务,可以将语音信箱与文字消息转换成可视化的界面进行管理。SimStateTracker是一个监视SIM卡状态的组件。通常情况下,这个广播不需要特别处理,但如果你需要在手机启动完成后执行某些操作,可以注册一个接收器来处理这个广播。
阅读全文