如何在Android中连接wifi时触发工作管理器?

问题描述 投票:0回答:1

我的应用程序需要在设备上连接互联网后立即同步数据。

我在Worker类中有同步工作,并且工作正常。但是,只要电话连接了互联网,我就必须立即上课。由于不建议也不建议使用广播接收器的连接更改,因此,我需要一种方法来在连接Internet时触发课程,以使数据同步。我该如何实现?

[我还认为,当用户存在应用程序并保持Internet连接状态但最近关闭应用程序时,不会调用onDestroy来安排工作经理。您对此有任何解决方案或逻辑吗?

android broadcastreceiver android-workmanager android-jobscheduler
1个回答
0
投票

由于Android O及更高版本的新限制,您不能使用清单标志在网络连接处于活动状态后立即启动您的类。但是只要有可用的互联网连接,您就可以告诉Workmanager运行您的工作。

为此,您需要定义一个约束:

 Constraints constraints = new Constraints.Builder()
                    .setRequiredNetworkType(NetworkType.CONNECTED)
                    .build(); 

然后排队工作:

OneTimeWorkRequest onetimeJob = new OneTimeWorkRequest.Builder(YourJob.class)
                    .setConstraints(constraints).build(); // or PeriodicWorkRequest
WorkManager.getInstance().enqueue(onetimeJob);
© www.soinside.com 2019 - 2024. All rights reserved.