BIND_NOTIFICATION_LISTENER_SERVICE自动停止后如何触发

时间:2018-12-06 05:39:24

标签: android

我正在做一个React Native应用程序(但是我的问题主要与Android相关),我将在Android本机代码中捕获通知,然后通过回调将捕获的数据提供给Javascript 。

我正在使用BIND_NOTIFICATION_LISTENER_SERVICE服务,并在NotificationListenerService文件中为其指定了一个类Manifest


AndroidManifest.xml

      <service
          android:name=".NotificationListener"
          android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"
          android:enabled="true">
            <intent-filter>
                <action android:name="android.service.notification.NotificationListenerService" />
            </intent-filter>
      </service>

NotificationListenerService.java

public class NotificationListener extends NotificationListenerService {

    Context context;

    private String TAG = this.getClass().getSimpleName();

    @Override
    public void onCreate() {
        super.onCreate();

        // this method is not getting executed after 2 or 3 days of installation

        Log.d("KBTCHECK", "NotificationListener - onCreate");
        context = getApplicationContext();
    }
    @Override
    public void onNotificationPosted(StatusBarNotification sbn) {

        // this method is not getting executed after 2 or 3 days of installation

        Log.d("KBTCHECK", "NotificationListener - onNotificationPosted");

            // My Logic here..

            Intent msgrcv = new Intent("NOTIFICATION_POSTED_KBT");
            msgrcv.putExtras(extras);

            // Broadcasting it, so I'll capture in another module and send it to Javascript
            LocalBroadcastManager.getInstance(context).sendBroadcast(msgrcv);
    }
}

在这里,我不是手动触发NotificationListenerService。我希望在Manifest中指定它可以使Android系统自动触发它。

问题:

  在安装通知的2/3天后,在接收通知时未调用

NotificationListenerService的onCreateonNotificationPosted

(我需要手动禁用/启用通知访问权限才能使其重新工作)

我的期望:

  

在特定时间间隔触发服务,以便即使它被android系统停止,它也应自动重新启动。

如果我手动触发,我可以安排它在任何时间间隔内触发,但是由于它是由Android自动触发的,所以我找不到方法(或者我不知道怎么做)在指定的时间间隔内执行触发操作。

请引导我以正确的方式实现预期的行为。

感谢您的时间和帮助。...(:

0 个答案:

没有答案