android - SM-G950F(Samsung s8) 运行 OneoffTask 的问题

标签 android scheduled-tasks samsung-mobile

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

当用户尝试登录时,它会登录,但之后我使用以下代码通过“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。它适用于所有其他设备。为什么是这个问题,我也没有收到错误。它只是卡在那里。

最佳答案

我无法发表评论,所以我对您所面临的问题做出了一些假设,希望我能做出正确的判断。如果不是这种情况,请告诉我。

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

在 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)上运行良好,因此希望您不需要那么多“奥利奥逻辑”。

请让我知道这是否让您朝着正确的方向前进:)

关于android - SM-G950F(Samsung s8) 运行 OneoffTask 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52677252/

相关文章:

android - sendUserActionEvent() 为空

powershell - 计划任务未显示在 Get-ScheduledTask 结果中

java - 如何以编程方式关闭三星设备上的电容式按钮灯?

java - 自己的SDK架构——Kotlin中的异步方法API

android - 在android中自动更改设置的默认字体大小?

sql-server - 存储过程会导致内存泄漏吗?

c# - 哪个更适合用于重复性工作 : Service or Scheduled Task?

android - CSS 显示 : none not working on Samsung S5 mini

android - android 上的链接按钮

android - 自定义搜索栏被切边