连接网络后,使用workmanager同步数据

时间:2019-07-16 09:29:11

标签: android android-workmanager

我知道同步适配器用于本地和远程同步数据。但是在他们的文档中,据说在后台执行限制之后,最好使用workmanager。我的应用程序使用了相同的数据存储在会议室数据库中,并在连接网络时进行了同步。我在网络约束下使用过workmanager。 我注意到的事情是,如果您的应用程序在后台运行,即使设备状态从脱机状态变为联机状态,数据也不会同步。 所以我想立即同步我的数据,无论应用程序是前台还是后台,当用户打开应用程序时,他都应该看到更新的数据。 这是我的代码。我在onviewcreatedMethod的片段中调用syncChats方法。我知道workmanager用于延期工作,但是为什么文档说要使用workmanager? whatsapp用于实时聊天的什么?

private fun syncChats() {
        val work = PeriodicWorkRequest.Builder(
            OfflineChatManager::class.java, PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS, TimeUnit.MILLISECONDS
        )
            .setConstraints(constraints())
            .setBackoffCriteria(
                BackoffPolicy.EXPONENTIAL,
                PeriodicWorkRequest.MIN_BACKOFF_MILLIS,
                TimeUnit.MILLISECONDS
            )
            .build()
        WorkManager.getInstance(context!!).enqueue(work)
    }

    private fun constraints(): Constraints {
        return Constraints.Builder()
            .setRequiredNetworkType(NetworkType.CONNECTED)
            .build()
    }

0 个答案:

没有答案