【发布时间】:2021-04-18 01:15:15
【问题描述】:
我正在 Android 中构建一个片段,用于显示保存在服务器上的一些数据。只要用户在这个片段上,我想每 x 秒轮询一次服务器。此外,一旦用户离开此片段,我想停止此过程。这个问题的最佳解决方案是使用协程还是线程?感谢您的帮助!
【问题讨论】:
标签: android concurrency kotlin-coroutines
我正在 Android 中构建一个片段,用于显示保存在服务器上的一些数据。只要用户在这个片段上,我想每 x 秒轮询一次服务器。此外,一旦用户离开此片段,我想停止此过程。这个问题的最佳解决方案是使用协程还是线程?感谢您的帮助!
【问题讨论】:
标签: android concurrency kotlin-coroutines
轮询绝不是一个好的选择,因为您将继续浪费资源,而服务器可能没有新数据可提供。但是,如果您仍然热衷于这样做,您可以使用任何选择,即协程和线程。在线程中,您必须自己管理它的生命周期,而在协程中,您不必担心任何事情,因为 CoroutineScope 会为您处理所有这些。使用Coroutines 的一个动机是提供operators,例如,您可以在flows、map 和switchMap 上使用。
更好的解决方案是使用SNS 或firebaseRemoteMessagingService 通知您的应用程序客户端,然后您可以请求服务器。
【讨论】: