我的问题是针对API LEVEL 24 - Android 7.0 Nougat。 我正在尝试找到最合适和未来的方式来启动粘性前台服务。 总结一下: - 按下按钮后,需要从活动开始服务 - A(粘性 - 这将由通知标志处理)通知将被创建
在API级别26中,我们可以调用startForegroundService(service, notification)
,服务会自动与通知相关联。
但是,在API级别24中,服务以startService(service)
启动,并通过调用NotificationManagerCompat的notify
方法显示通知。
我们如何让操作系统知道通知与服务有关,因此该服务被视为前台服务,操作系统永远不会自行查杀。
注意:我希望这种实现的原因是为了防范。此服务需要位置更新,从API级别26开始,只有前台服务(带有粘性通知)才能接收实时更新(https://developer.android.com/about/versions/oreo/background-location-limits)。
答案 0 :(得分:1)
我们如何让操作系统知道通知与服务有关,因此该服务被视为前台服务
在服务中致电startForeground()
,提供Notification
。您还需要在Android 8.0+上执行此操作。
操作系统永远不会自行杀死
从未如此。这简直使Android不太可能终止您的流程。