某些设备上未触发GcmNetworkManager定期任务

时间:2016-09-26 09:11:39

标签: android google-cloud-messaging gcm-network-manager

我正在使用GcmNetworkManager运行定期同步任务以将数据推送到我的服务器。 但是,在发布应用程序后,我注意到在某些手机中,永远不会调用周期性任务。 我已经调试了应用程序是其中一些手机并且没有看到任何异常,我在安排任务时没有任何错误或日志,但它们根本就没有被调用。

我的大多数用户都有Infinix部手机。

任何关于这可能是根本原因的想法?

以下是我安排任务的代码:

  Task task = new PeriodicTask.Builder()
            .setService(mClazz)
            .setPeriod(TimeUnit.MILLISECONDS.toSeconds(period))
            .setFlex(TimeUnit.MILLISECONDS.toSeconds(period / 5))
            .setTag(TAG_SYNC)
            .setUpdateCurrent(true)
            .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
            .build();

    mGcmNetworkManager.schedule(task);

1 个答案:

答案 0 :(得分:0)

使用GcmNetworkManager类,

  

要从调度程序接收任务已准备好执行的通知,您的客户端应用必须实施GcmTaskService并过滤操作SERVICE_ACTION_EXECUTE_TASK

同样,根据GcmTaskService,您的实施应调用super.onStartCommand(),否则您的任务将无法正确启动。

除此之外,此SO帖子中提供的解决方案 - GCM Network Manager - Periodic Task not firing也可能有所帮助。

快乐的编码!