首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NotifyDataChanged来自服务机器人

NotifyDataChanged来自服务机器人
EN

Stack Overflow用户
提问于 2014-02-18 15:35:35
回答 2查看 218关注 0票数 1

我有服务可以更新我的android应用程序上的数据库。问题是,如果我不显式调用"myAdapter.notifyDataChanged()“方法,应用程序本身上的视图(Listview)就不会收到通知。我怎样才能从服务中做到这一点?在这里,我没有适配器的引用,也没有保存适配器的活动。

我想要启动我自己的定制事件,但我不知道这在android系统中是否可行。我在API文档中找不到任何东西。

提前谢谢!.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-18 15:45:02

使用消息总线(LocalBroadcastManager绿色机器人的EventBus广场的奥托等)。

或者,使用Messenger

或者,将数据库封装在ContentProvider中并使用CursorLoader填充适配器,因为当您更改ContentProvider中的内容时(假设您正确地实现了它),您将得到一个新的Cursor

票数 3
EN

Stack Overflow用户

发布于 2014-02-18 15:59:05

优雅的方法是使用bindService将活动绑定到服务。在这个调用中,您需要提供一个定制的ServiceConnection对象,该对象具有一个名为onServiceConnected的回调函数,在该函数中,您可以获得指向服务的指针。

一旦您有了指向Service对象的指针,您可以要求您的服务通知您(提供指针、回调、处理程序或任何其他机制),以便在更新数据库时更新视图。

通过这种机制,当您的活动开始时,它将连接到服务,而当活动结束时(onPause()),您将断开与服务的连接。

这并不简单,特别是如果您以前从未这样做过,但是这种机制对于任何类型的服务都是非常有用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21858349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档