根据我的测试,我的Android应用程序中的NotificationListenerService
(NLS)似乎没有绑定到Android 8(Oreo)上的系统。我的目标是针对SDK版本26的应用,使其与新操作系统兼容。
在Android N之前,NLS服务永远绑定到SystemUI (Ref: Google I/O 2016)。从Android N开始,NLS服务中引入了两种新方法:requestRebind(ComponentName)
和requestUnbind()
。
在Android Oreo中,有适用于服务的新Background Execution Limits。但是,它不适用于某些服务,例如“另一个应用程序绑定到的通知侦听器”。这是我的用例,因为我正在使用应该绑定到SystemUI的NLS服务。
然而,正如我所观察到的,这项服务永远不会被绑定到SystemUI。此外,即使我明确地调用requestRebind(ComponentName)
,服务也永远不会被绑定,因此它不起作用,因为这意味着我无法收听通知。
如何在Android Oreo中解决此问题?
答案 0 :(得分:0)
哦,小伙子,这很傻!该问题已通过重新启动解决。我认为Android在我的手机上行为不端,只是拒绝以正确的方式工作。重新启动手机并再次尝试使服务按照预期的方式工作!
我会把这个问题留给所有有时最简单和最陈词滥调的提醒(即"你是否尝试将其关闭再打开?" )是正确的答案!
好悲伤!