我的问题与 API LEVEL 24 - Android 7.0 Nougat 相关,我正在尝试找到最合适且具有未来性的方法来启动一个粘性前台服务。
总结一下:
- 服务需要从活动中在按钮按下后启动
- 将创建通知(粘性通知将由通知标志处理)
在 API 级别 26 中,我们可以调用
注意:我想要这种实现方式是为了具有未来性。该服务需要位置更新,从 API Level 26 开始,只有前台服务(带有粘性通知)才能接收实时更新。(https://developer.android.com/about/versions/oreo/background-location-limits)
在 API 级别 26 中,我们可以调用
startForegroundService(service, notification)
,服务会自动与通知相关联。但是,在 API 级别 24 中,服务是通过调用 startService(service)
启动的,并通过调用 NotificationManagerCompat 的 notify
方法显示通知。我们如何让操作系统知道通知与服务相关,以便服务被视为前台服务,并且操作系统不会自行终止服务。注意:我想要这种实现方式是为了具有未来性。该服务需要位置更新,从 API Level 26 开始,只有前台服务(带有粘性通知)才能接收实时更新。(https://developer.android.com/about/versions/oreo/background-location-limits)
startForeground()
自API Level 5以来就存在:https://developer.android.com/reference/android/app/Service#startforeground - CommonsWarestartForeground
是一个服务方法,所有与通知相关的代码都需要由服务管理 - 对于混淆感到抱歉。 - AlexandrosD