【问题标题】:GcmNetworkManager periodic task not being triggered on some devicesGcmNetworkManager 定期任务未在某些设备上触发
【发布时间】:2016-09-26 09:11:38
【问题描述】:

我正在使用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);

【问题讨论】:

  • 请分享您的代码,其中使用了GcmNetworkManager
  • 编辑问题以包含代码示例

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


【解决方案1】:

在使用GcmNetworkManager类时,

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

同样,基于GcmTaskService,您的实现应该调用super.onStartCommand(),否则您的任务将无法正确启动。

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

编码愉快!

【讨论】:

    猜你喜欢
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 2021-09-01
    相关资源
    最近更新 更多