2016-02-14 62 views
1

我有一个启动并绑定到服务的活动。它发送一个数据列表的意图,该服务负责定期更新该数据。这是在handleIntent(Intent)方法中完成的。我想要做的是将更新的数据发送回活动。活动和服务都在同一个应用程序中。我如何“倾听”我的服务请求?我必须使用Messenger和/或广播接收器吗?什么是最干净,最简单,最有效的方法呢?谢谢。定期将服务数据发送到绑定活动

回答

3

我建议你检查一下EventBus。它将允许您发送本地广播接收器等事件。从活动中你可以听到特定的事件和显示结果。你甚至可以使用接口从服务中获取回调。

没有任何库,你可以通过LocalBroadcastManager实现这个功能。 http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html

+0

我应该提到,我在寻找这样做无需外部库的“股票”的方式 - 这是内置到Android的东西。 –

+0

@SinaMadani我已经更新了我的答案检查它。 – androidnoobdev

+0

这似乎会做这项工作,但由于某种原因,我不能导入它。我可以导入android.support.v4.content。*,但不是android.support.v4.content.LocalBroadcastManager。 –

0

对于这个问题,您可以使用ResultReceiver。如果服务和活动共享相同的ResultReceiver对象,那么您可以使用“send(int,Bundle)”方法将数据“推送”到服务中的Activity,并在Activity端使用“onReceiveResult(int,Bundle) ”。

ResultReceiver | Android reference