【问题标题】:onNotificationPosted not being called after some timeonNotificationPosted 一段时间后没有被调用
【发布时间】:2017-11-14 20:40:15
【问题描述】:

我使用NotificationListenerService 来捕获通知并在我的应用程序中详细说明它们。应用运行良好,onNotificationPosted 总是被调用,但过了一段时间(几个小时)它停止被调用并且应用停止工作。

只有在我重新启动设备或撤销并再次授予对应用程序的通知访问权限时,它才能恢复工作。

重要信息

  • 应用确实启用了通知访问权限。
  • 应用确实在 AndroidManifest 上有服务。

    <service
        android:name=".NotificationService"
        android:label="@string/app_name"
        android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
             <intent-filter>
                 <action android:name="android.service.notification.NotificationListenerService"/>
             </intent-filter>
    </service>
    
  • 应用程序是发布版本(但调试版本存在相同问题)。

  • 已在 Android Lollipop、Marshmallow 和 Nougat 上进行了测试,结果相同。
  • 已在运行相同 Android 版本的不同设备上进行了测试。
  • 应用停止在后台和屏幕上显示的活动中运行。
  • 如果我重新安装应用程序,它会再次工作,但这已包含在前面提到的“再次撤销和授予通知访问权限”中。
  • 应用底部包含 AdMob 横幅,这可能是问题吗?

我读到 Android 存在缓存问题或类似问题。这是问题吗?有没有我在任何地方都找不到的永久解决方案?

【问题讨论】:

    标签: java android notifications listener


    【解决方案1】:

    我自己在这里找到了答案: https://gist.github.com/xinghui/b2ddd8cffe55c4b62f5d8846d5545bf9

    只需按照上面的链接创建一个新类,然后输入onCreate

    startService(new Intent(this, NotificationCollectorMonitorService.class));
    

    在 AndroidManifest 中:

    <service android:name=".NotificationCollectorMonitorService"/>
    

    这将在 Android 杀死它时重新启动 NotificationListenerService。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      相关资源
      最近更新 更多