从协程流获取数据

时间:2020-10-21 00:27:36

标签: android kotlin android-room kotlin-coroutines coroutine

我正在观察网络的变化,并且当有连接时,我想从Room数据库中获取数据。

我有getOfflineData返回数据流。

 @Query("SELECT * FROM OfflineData")
    fun getOfflineData(): Flow<List<OfflineData>>

当有网络连接时,我想从getOfflineData中获取数据。

这是检查是否存在连接正常的功能

fun listenToConnectionChanges() {
    launch {
        OfflineDatabaseManager.getInstance(app.applicationContext).networkConnectionActivated
            .collect { isNetworkConnectionActive ->
                Timber.d("OfflineDataLib - getOfflineData() - isNetworkConnectionActive - " + isNetworkConnectionActive)

            }
    }
}

当我包括以下代码以从功能getOfflineData()获取数据时,当我切换连接时,它不会记录连接更改消息。也不会获取数据。

我在这里可能做的是根本错误的事情,请纠正我

 fun listenToConnectionChanges() {
        launch {
            OfflineDatabaseManager.getInstance(app.applicationContext).networkConnectionActivated
                .collect { isNetworkConnectionActive ->
                    Timber.d("OfflineDataLib - getOfflineData() - isNetworkConnectionActive - " + isNetworkConnectionActive)
                    if (isNetworkConnectionActive) {
                        OfflineDatabaseManager.getInstance(app.applicationContext).getOfflineData().collect {
                            Timber.d("OfflineDataLib - getOfflineData() - isNetworkConnectionActive -  offlinedata - " + it.toString())
                        }
                    }
                }
        }
    }

我想要实现的是当有连接时,我想从getOfflineData获取数据。

预先感谢 R

0 个答案:

没有答案