启动完成后,如何在奥利奥及以上启动前台服务?



我正在开发一个应用程序,我想在启动完成后启动前台服务。我知道我无法在广播中启动服务,这就是我问这个问题的原因。我没有找到任何有用的细节可以继续前进。我正在使用前台服务,该服务每分钟为我提供位置更新。

对于启动侦听,我正在使用广播接收器。

AndroidManifest.xml我写了这篇文章。

<receiver
android:name=".services.receiver.StartUpdateReceiver"
android:enabled="true"
android:exported="true"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>

收到启动接收器后,我想启动相同的前台服务以在每分钟后获取位置更新。当我单击活动中的按钮以启动前台服务以获取位置更新时,这工作正常。

请让我知道我如何实现这一目标?

使用startForegroundService()启动前台服务。

Android 8.0引入了新方法startForegroundService((来在前台启动新服务。系统创建服务后,应用有五秒钟的时间调用服务的 startForeground(( 方法,以显示新服务的用户可见通知。如果应用未在时间限制内调用 startForeground((,系统会停止该服务并将应用声明为 ANR。如开发人员网站中所述,请检查此内容

相关内容

最新更新