android - 引导完成后如何在 Oreo 中启动前台服务?

标签 android android-8.0-oreo foreground-service

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

对于开机监听,我使用的是 Broadcast-Receiver。

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>

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

请告诉我如何实现这一点?

最佳答案

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

关于android - 引导完成后如何在 Oreo 中启动前台服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51929625/

相关文章:

android - 如何给下载一个进度条?

android - 在 Retrofit 2 上使用 RxJavaCallAdapterFactory 时出现 AbstractMethodError

Android 可下载字体 : italic text cut off at start and end

java - Android O 固定快捷方式 - CREATE_SHORTCUT Intent 过滤器

android - 从最近清除应用程序时如何处理作为前台运行的服务?

android - 启动前台时的 NPE

android - Cordova build -release Android 未签名 apk

android - 尝试查找 BLE 设备时如何使用 LeScanCallback?

android - Notification.addAction 在 Android O 中不起作用