Android 在应用的AndroidManifest.xml当中的application标签当中设置android:persistent="true"时,开机后系统会自动启动应用的application类吗?
时间: 2024-03-15 14:46:49 浏览: 74
Android实现开机自动启动Service或app的方法
3星 · 编辑精心推荐
不是的。在 AndroidManifest.xml 中设置 android:persistent="true" 属性,只是表示该应用程序是“持久化”的,即在设备重启后仍然会保留。这个属性的作用是告诉系统,在设备重启后,该应用程序的数据和状态应该得到恢复。
当设备重启后,系统会自动恢复所有持久化的应用程序,包括它们的数据和状态。但是,系统并不会自动启动这些应用程序的 Application 类。如果你需要在设备重启后自动启动应用程序的 Application 类,你可以考虑使用 BroadcastReceiver。
具体来说,你可以创建一个 BroadcastReceiver,并在它的 onReceive() 方法中启动你的 Application 类。然后,在 AndroidManifest.xml 文件中声明这个 BroadcastReceiver,同时注册一个 BOOT_COMPLETED 的 Intent 过滤器,以便在设备重启后接收到该广播,并启动你的 Application 类。例如:
```xml
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:name=".MyApplication"
android:persistent="true"
...>
...
</application>
<receiver android:name=".BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
```
其中,BootReceiver 是你创建的 BroadcastReceiver 类,它的 onReceive() 方法中可以启动你的 Application 类。注意,你需要在 AndroidManifest.xml 文件中声明 RECEIVE_BOOT_COMPLETED 权限,以便接收到 BOOT_COMPLETED 广播。
阅读全文