我的问题是针对API 24级-Android 7.0牛轧糖。 我正试图找到最合适、最适合未来的方式来启动一个粘性前台服务。 综上所述: -按下按钮后,需要从活动启动服务 -将创建(粘性-这将由通知标志处理)通知
在API级别26中,我们可以调用 startForegroundService(service, notification) 并且服务会自动关联到通知。 然而,在API级别24中,该服务是以 startService(service) 并通过调用NotificationManagerCompat的 notify 方法 我们如何让操作系统知道通知与服务相关,因此该服务被视为前台服务,操作系统永远不会自行终止。
startForegroundService(service, notification)
startService(service)
notify
注意:我之所以希望这个实现是因为它是面向未来的。此服务需要位置更新,从API级别26开始,只有前台服务(带有粘性通知)才能接收实时更新( https://developer.android.com/about/versions/oreo/background-location-limits )。
我们如何让操作系统知道通知与服务相关,从而将服务视为前台服务
呼叫 startForeground() 在服务中,提供 Notification 。您也需要在Android 8.0+上执行此操作。
startForeground()
Notification
操作系统永远不会自行消亡
情况从来不是这样。这只会降低Android终止您的进程的可能性。