有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何让服务知道应用程序何时被终止以清除通知?

我正在开发一个应用程序,它使用一个可扩展服务,当用户想要连接到设备时启动,当没有更多连接时停止。在BLE服务的生命周期中,我希望有一个持久的通知,提醒用户应用程序正在运行和使用BLE。当应用程序仍在运行时停止服务时,此功能可以正常工作。但问题是,当应用程序被刷走时,我似乎找不到一个可以清除通知的地方

我尝试过的事情:

  1. 清算通知onUnbind()
override fun onUnbind(intent: Intent?): Boolean {
    mNM = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
    mNM!!.cancelAll()
    return super.onUnbind(intent)
}
  1. 正在清除onDestroy()上的通知
override fun onDestroy() {
    mNM = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
    mNM!!.cancelAll()
    super.onDestroy()
}
  1. 将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) 个答案