我正在尝试实现生命周期感知的长轮询(在活动/片段中)。轮询将限定在每隔固定时间间隔向服务器发送 API 请求的片段。但是,我无法实施它。
- 在客户端有一个硬超时,而不考虑在接收响应时产生的任何额外延迟。
- 在发送下一个请求之前等待上一个 API 调用的响应。即,由于轮询间隔,轮询队列中的请求应等待响应,而不管其优先级如何
考虑:
HARD_TIMEOUT = 10 秒
Request 1: Started at: 0sec Response delay:1.2sec Duration left: 0.8sec
Request 2: Started at: 2sec Response delay:0.4sec Duration left: 1.6sec
Request 3: Started at: 4sec Response delay:2.5sec Duration left: 0sec
Request 4: Started at: 6.5sec Response delay:0.5sec Duration left: 1.0sec
Request 5: Started at: 8sec Response delay:0.8sec Duration left: 1.2sec
Run Code Online (Sandbox Code Playgroud)
对于这个用例,我想使用轮询而不是套接字。任何想法/解决方案将不胜感激。谢谢你。
我需要使用多个recyclerviews。在以下情况下,我将至少需要6个recyclerviews。6 = 1用于卧式recyclerview + 3用于viewpager中的每个片段+ 1用于recylerview + 1用于网格布局。
由于数据复杂性巨大,每个适配器数据都取决于其他适配器的变化,因此我决定使用android jetpack中引入的体系结构组件。因此,首先,我将集成视图模型和实时数据。稍后合并会议室数据库(现有数据库在SQLite中)
正如我将使用多个livedata来监视适配器数据更改一样。我想清除对视图模型和实时数据的性能方面的怀疑。
使用大量实时数据的性能开销:
我将需要6到7个实时数据来观察每个适配器数据的变化。为了了解性能,假设要使用大约50到60个实时数据。
是最佳做法还是建议仅在房间内使用实时数据?
我们可以在适配器数据或简单的原始类型(例如布尔值,整数等)上使用它吗(例如:isLoading:MutableLiveData,inputText:MutableLiveData textField字符串以监视更改。)
假设某人可能要求它包含在一个表单上,该表单可能具有多个数字编辑文本,下拉菜单,多项选择等,每个文本都附加有实时数据。