代码之家  ›  专栏  ›  技术社区  ›  PPD

如何为WiFi和蜂窝数据设置不同的工作管理约束

  •  0
  • PPD  · 技术社区  · 7 年前

    在我的应用程序中,我使用工作管理器进行定期工作。在下面的代码中,如果设备有Internet连接,我的工作在每4小时后执行。

    PeriodicWorkRequest.Builder myWorkBuilder =
                    new PeriodicWorkRequest.Builder(FileUpload.class, 4,
                            TimeUnit.HOURS)
                            .setConstraints(new Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build());
    
            PeriodicWorkRequest myWork = myWorkBuilder.build();
            WorkManager.getInstance().enqueueUniquePeriodicWork("myJob", ExistingPeriodicWorkPolicy.REPLACE,myWork);
    

    现在我想改变时间-如果设备连接到WiFi,那么工作应该在每20分钟后执行,如果设备连接到蜂窝数据,那么工作应该在12小时后执行。如何做到这一点。提前谢谢

    1 回复  |  直到 7 年前
        1
  •  0
  •   Muhammad Muzammil    7 年前

    一种可能的解决方案是添加 NetworkType.CONNECTED 在你 PeriodicWorkRequest . 在那之后 FileUpload.class 使用检查您是否连接了WiFi或蜂窝数据 this 然后采取相应的行动