如何从Android中的服务更新列表?

时间:2015-07-17 08:10:28

标签: android broadcastreceiver android-service

我有一个服务,它在Socket连接和高峰时段读取数据。变化的频率是每五秒钟。

我有两个选择。

  1. 使用List更新BroadCastReceiver

  2. 在我创建Thread的{​​{1}}中创建一个新的Activity,每隔五秒读取一个静态变量,当更改发生时,更改静态变量List

  3. 哪个选项效率更高,两者的优缺点是什么? 如果您认为有更好的选择,请告诉我。

    谢谢。

3 个答案:

答案 0 :(得分:1)

我会使用BroadcastReceiver(使用LocalBroadcastManager)选项。我建议你制作模型类实现Parcelable。我肯定会避免解决方案2

答案 1 :(得分:0)

BroadCastReceiver对您的案例有效。

它可以帮助您在收到新数据时更新ListView。因此,您不需要每5秒检查一次更新。 它将提高您的应用程序的性能。另一方面,在频繁更新的情况下,它不会等待给定的间隔。

请选择 broadcastreceicer

以下是您将从 BroadcastReceiver获得的专业人士:

广播接收器唤醒您的应用程序,内联代码仅在您的应用程序运行时才有效。

例如,如果您希望应用程序收到来电通知,即使您的应用未运行,也可以使用广播接收器。

如果您的应用程序正在播放音频,并且您想要在来电时停止播放音乐,则使用内联代码。

答案 2 :(得分:0)

使用广播接收器你无法获得用户界面,你可以看到为什么here,如果你谈论其他事情,请解释我们......在那篇文章中你可以看到另一种方法来更新UI意图服务,我认为这是从意图服务更新UI的最佳方式,因为您只需在需要时更新UI并且不会对应用程序流程过度收费。

最后,如果你想每5秒钟更新一次你的UI,但是有一点点差别......如果我的应用程序在第一架飞机上,我会每隔5秒更新一次我的应用程序,如果不是,那么当我的应用程序更新我的应用程序时应用程序在OnResume()方法中进入第一个平面,因为当我的应用程序处于后台时,您不会使用设备中的额外内存...

告诉我,如果我帮助你并做好编程!