java如何让服务知道应用程序何时被终止以清除通知?
我正在开发一个应用程序,它使用一个可扩展服务,当用户想要连接到设备时启动,当没有更多连接时停止。在BLE服务的生命周期中,我希望有一个持久的通知,提醒用户应用程序正在运行和使用BLE。当应用程序仍在运行时停止服务时,此功能可以正常工作。但问题是,当应用程序被刷走时,我似乎找不到一个可以清除通知的地方
我尝试过的事情:
- 清算通知onUnbind()
override fun onUnbind(intent: Intent?): Boolean {
mNM = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
mNM!!.cancelAll()
return super.onUnbind(intent)
}
- 正在清除onDestroy()上的通知
override fun onDestroy() {
mNM = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
mNM!!.cancelAll()
super.onDestroy()
}
- 将stopWithTask设置为false并清除中的通知
<service
安卓:name=".location.LocationService"
安卓:enabled="true"
安卓:stopWithTask="false"/>
override fun onTaskRemoved(rootIntent: Intent?) {
mNM = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
mNM!!.cancelAll()
stopSelf()
super.onTaskRemoved(rootIntent)
}
但这些都不管用
我通过绑定来启动服务:
bindService(intent, mConnectionLocation, Context.BIND_AUTO_CREATE)
我还允许屏幕旋转,因此Main Activity onDestroy无法用于解除绑定
除此之外,我如何检测应用程序被刷走以清除持续通知
共 (0) 个答案