gpt4 book ai didi

kotlin - 位置流

转载 作者:行者123 更新时间:2023-12-02 12:51:54 28 4
gpt4 key购买 nike

我想使用协程流作为当前手机位置的来源,并在 map 上进行标记。这是我的 ViewModel 中的内容:

private val gpsAwareLocationFlow = broadcastFlow(BroadcastTransformers.gpsReceiver)
.flatMapConcat { locationNotifier.locationFlow() }

private val locationFlow = locationNotifier.locationFlow()

val currentPosition = //here is place for solution, I suppose
.asLiveData()
当我使用 locationFlow.asLiveData ,只要 GPS 选项打开,事件就会接收数据。当它关闭时,流将关闭并且事件不会对禁用或启用 GPS 选项使用react。
当我使用 gpsAwareLocationFlow.asLiveData() , 只有在 GPS 选项第一次更改后,事件才会正确 react 。在更改选项之前,它不会做任何事情。
第一个想法是使用 combine在两个流程上。事实证明,只要两者都单独运行良好(至少作为流),在组合它们之后,结果流不会收到任何通知。
    val resultFlow = locationFlow.combine(gpsAwareLocationFlow){ a, b-> }
有人知道我在做什么错吗?

最佳答案

我想问题是 combineLatest在两个流源都没有发出至少一个值之前,函数不会发出任何东西。我解决这个问题的好方法是用一个值初始化两个流,但我不知道你是否可以在你的代码中这样做。

关于kotlin - 位置流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59991185/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com