启动完成后,如何在Oreo中启动前台服务?

时间:2018-08-20 11:18:26

标签: android android-8.0-oreo foreground-service

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

对于启动侦听,我使用的是Broadcast-Receiver。

我在<div class="form-group"> <label>Some label</label> <div class="input-group"> <input type="text" class="form-control"/> <div class="input-group-append"> <i class="icon"></i> </div> </div> </div> 中写了这个。

AndroidManifest.xml

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

  

Android 8.0引入了新方法startForegroundService()来在前台启动新服务。系统创建服务后,应用程序将有五秒钟的时间调用服务的startForeground()方法,以显示新服务的用户可见通知。如果该应用程序在该时限内未调用startForeground(),则系统将停止服务并声明该应用程序为ANR。如开发者网站Check this

中所述
相关问题