服务和活动之间的数据交换

时间:2011-10-03 10:21:33

标签: android service android-activity progress-bar

我必须在进度条上不断地从UI上的后台服务发布进度。关于如何去做的任何想法。意图不起作用我想因为他们只能在活动开始后发送数据。蚂蚁的其他建议?

更新:UI上的进度发生在进度栏

2 个答案:

答案 0 :(得分:1)

扩展应用程序,为整个应用程序创建一次。

当Activity启动时,将其引用存储在Application对象中的字段中。 (请注意,您可以使用Activity.getApplication访问Application)。将此字段设置为Activity引用,或者在onPause / onResume调用中设置为null。

然后在Service中,您还可以通过Service.getApplication访问您的Application。因此,请查看您的Activity引用是否为非null,这意味着您的Activity将显示给用户,并在这种情况下根据需要通过调用Activity上的方法来更新UI。

答案 1 :(得分:0)

感谢帮助鼠标,但由于我需要更新应用程序中不同活动的进度条,具体取决于哪一个可见,我发现通过Broadcast Intents and Recievers和Intent Filters更容易实现。我所要做的就是通过广播Intent(应用自定义Intent Filter)广播我的服务中包含的进度,并在需要进度的活动中注册(在onResume()中)BroadcastReciever的内部子类(具有相同的意图过滤器)。也可以在活动的onPause()方法中取消注册这些接收器以节省内存顶空。