我有一个服务,它在Socket连接和高峰时段读取数据。变化的频率是每五秒钟。
我有两个选择。
使用List
更新BroadCastReceiver
。
在我创建Thread
的{{1}}中创建一个新的Activity
,每隔五秒读取一个静态变量,当更改发生时,更改静态变量List
。
哪个选项效率更高,两者的优缺点是什么? 如果您认为有更好的选择,请告诉我。
谢谢。
答案 0 :(得分:1)
我会使用BroadcastReceiver
(使用LocalBroadcastManager
)选项。我建议你制作模型类实现Parcelable
。我肯定会避免解决方案2
答案 1 :(得分:0)
BroadCastReceiver
对您的案例有效。
它可以帮助您在收到新数据时更新ListView
。因此,您不需要每5秒检查一次更新。
它将提高您的应用程序的性能。另一方面,在频繁更新的情况下,它不会等待给定的间隔。
请选择 broadcastreceicer
。
以下是您将从 BroadcastReceiver
获得的专业人士:
广播接收器唤醒您的应用程序,内联代码仅在您的应用程序运行时才有效。
例如,如果您希望应用程序收到来电通知,即使您的应用未运行,也可以使用广播接收器。
如果您的应用程序正在播放音频,并且您想要在来电时停止播放音乐,则使用内联代码。
答案 2 :(得分:0)
使用广播接收器你无法获得用户界面,你可以看到为什么here,如果你谈论其他事情,请解释我们......在那篇文章中你可以看到另一种方法来更新UI意图服务,我认为这是从意图服务更新UI的最佳方式,因为您只需在需要时更新UI并且不会对应用程序流程过度收费。
最后,如果你想每5秒钟更新一次你的UI,但是有一点点差别......如果我的应用程序在第一架飞机上,我会每隔5秒更新一次我的应用程序,如果不是,那么当我的应用程序更新我的应用程序时应用程序在OnResume()方法中进入第一个平面,因为当我的应用程序处于后台时,您不会使用设备中的额外内存...
告诉我,如果我帮助你并做好编程!