定期从服务发送数据到绑定 activity
Send data from service to bound activity periodically
我有一个 Activity 启动并绑定到服务。它发送带有数据列表的意图,服务负责定期更新该数据。这是在 handleIntent (Intent) 方法中完成的。我想要做的是将更新后的数据发送回 activity。 activity 和服务都在同一个应用程序中。我如何 "listen" 处理来自我的服务的请求?我必须使用 Messenger and/or 广播接收器吗?最干净、最简单、最有效的方法是什么?谢谢
我建议您查看 EventBus。它将允许您发送事件,例如本地广播接收器。从 activity 中,您可以收听特定事件并显示结果。你甚至可以使用接口从服务中获取回调。
无需任何库,您可以使用 LocalBroadcastManager 实现此目的。
http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html
对于这个问题,可以使用ResultReceiver。如果服务和 activity 共享同一个 ResultReceiver 对象,那么您可以使用 "send(int, Bundle)" 方法和 Activity 从服务 "push" 数据到 Activity一边用 "onReceiveResult(int, Bundle)".
接收它
我有一个 Activity 启动并绑定到服务。它发送带有数据列表的意图,服务负责定期更新该数据。这是在 handleIntent (Intent) 方法中完成的。我想要做的是将更新后的数据发送回 activity。 activity 和服务都在同一个应用程序中。我如何 "listen" 处理来自我的服务的请求?我必须使用 Messenger and/or 广播接收器吗?最干净、最简单、最有效的方法是什么?谢谢
我建议您查看 EventBus。它将允许您发送事件,例如本地广播接收器。从 activity 中,您可以收听特定事件并显示结果。你甚至可以使用接口从服务中获取回调。
无需任何库,您可以使用 LocalBroadcastManager 实现此目的。 http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html
对于这个问题,可以使用ResultReceiver。如果服务和 activity 共享同一个 ResultReceiver 对象,那么您可以使用 "send(int, Bundle)" 方法和 Activity 从服务 "push" 数据到 Activity一边用 "onReceiveResult(int, Bundle)".
接收它