【问题标题】:Issue in SM-G950F(Samsung s8) for running OneoffTaskSM-G950F(Samsung s8) 运行 OneoffTask 的问题
【发布时间】:2019-03-11 15:33:13
【问题描述】:

我遇到了一个问题,我的应用用户无法通过某个点。

当用户尝试登录时,它会登录,但之后我使用此代码使用“OneoffTask”访问 API:

OneoffTask task = new OneoffTask.Builder()
        .setService(SyncService.class)
        .setTag(TaskConstants.UPLOAD_STREAK)
        .setExecutionWindow(0L, 200)
        .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
        .setPersisted(true)
        .setUpdateCurrent(true)
        .build();

GcmNetworkManager mGcmNetworkManager = GcmNetworkManager.getInstance(MainApplication.getContext());
mGcmNetworkManager.schedule(task);

此代码已执行,但计划任务未执行。三星 s8 型号:SM-G950F。它适用于所有其他设备。为什么是这个问题,我也没有收到错误。它只是卡在那里。

【问题讨论】:

    标签: android scheduled-tasks samsung-mobile


    【解决方案1】:

    我无法发表评论,因此我对您所面临的问题做出了一些假设,并希望您是正确的。如果不是这样,请告诉我。

    三星 S8 应该升级到 Android 8.0 (Oreo) 了吧?

    在奥利奥中,您需要以不同的方式处理一些限制。

    Android 8.0 限制了应用在用户不直接与其交互时可以执行的操作。应用受限于“后台服务限制”和“广播限制”两种方式,参考:https://developer.android.com/about/versions/oreo/background#overview

    GcmNetworkManager 还要求用户安装“播放服务”,您必须确保检查。 GCM 也很快被弃用,因此请寻找其他解决方案,例如由 FCM 取代:https://developers.google.com/cloud-messaging/android/client(另请参阅确保 S8 满足这些要求的要求)。

    为确保 GcmNetworkManager 调度程序按预期工作,您需要将其与 JobScheduler 结合使用。我找到的最佳参考是:https://github.com/yigit/android-priority-jobqueue/wiki/Integration-with-JobScheduler-and-GcmNetworkManager

    我对 JobScheduler 的体验是,它在我测试过的所有较新的设备(Android 6.0 --> 8.0)上运行良好,所以希望您不需要这么多“奥利奥逻辑”。

    如果这让你朝着正确的方向前进,请告诉我:)

    【讨论】:

      猜你喜欢
      • 2018-10-25
      • 2023-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      • 1970-01-01
      • 2015-09-23
      相关资源
      最近更新 更多