代码之家  ›  专栏  ›  技术社区  ›  AlexandrosD

API级别24的前台服务-Android 7.0 Nougat

  •  3
  • AlexandrosD  · 技术社区  · 6 年前

    我的问题是针对API 24级-Android 7.0牛轧糖。 我正试图找到最合适、最适合未来的方式来启动一个粘性前台服务。 综上所述: -按下按钮后,需要从活动启动服务 -将创建(粘性-这将由通知标志处理)通知

    在API级别26中,我们可以调用 startForegroundService(service, notification) 并且服务会自动关联到通知。 然而,在API级别24中,该服务是以 startService(service) 并通过调用NotificationManagerCompat的 notify 方法 我们如何让操作系统知道通知与服务相关,因此该服务被视为前台服务,操作系统永远不会自行终止。

    注意:我之所以希望这个实现是因为它是面向未来的。此服务需要位置更新,从API级别26开始,只有前台服务(带有粘性通知)才能接收实时更新( https://developer.android.com/about/versions/oreo/background-location-limits )。

    1 回复  |  直到 6 年前
        1
  •  2
  •   CommonsWare    6 年前

    我们如何让操作系统知道通知与服务相关,从而将服务视为前台服务

    呼叫 startForeground() 在服务中,提供 Notification 。您也需要在Android 8.0+上执行此操作。

    操作系统永远不会自行消亡

    情况从来不是这样。这只会降低Android终止您的进程的可能性。