Android服务更新表;如何获取相应的ListView进行更新?

时间:2012-04-17 08:14:56

标签: android android-listview android-service

假设我有一个长期运行的服务来监控外部设备的网络。每当它在网络中发现新设备时,它就会向本地SQLite数据库中的表添加一行,并且每当它检测到已知设备上的状态更改时,它就会更新表中的相应行。 (顺便说一句,没有办法预测这些发现和更新会发生频率或频繁发生 - 外部网络向自己的鼓手迈进!)

现在,我们还说我有一个Activity(在同一个进程中),它包含一个由上述表支持的ListView。在ListView最初被填充的确切时刻,它当然与支持表同步 - 但是之后的一个(或两个或三个)时刻,由于外部设备网络的变化,表格改变,礼貌服务。

服务通知Activity需要刷新ListView的最佳方法是什么,即在Cursor上调用requery(),然后在适配器上调用notifyDataSetChanged()?

我在SO上看过几个帖子,其中的方法似乎是“在Activity上注册一个broadcastReceiver,并从服务中发送一个广播Intent” - 但这似乎对本地服务有点过分。是不是有一些更简单的方法?

例如,我在想,因为我可以通过Binder对象获取本地Service对象的句柄,所以我可以注册某种类型的回调函数,以便在需要时由服务调用。这听起来像它会起作用吗? (或者我会进入死胡同?)

期待您的见解。

中号

0 个答案:

没有答案