2011-03-01 89 views
4

我有一个活动,它调用一个web服务和xml解析。我希望我的活动等待xml解析类执行,然后我希望我的活性继续。我想知道是否有一个事件委托的概念,是目前在android中,我可以让我的XML解析类响应我的活动,当它结束。如何在Android中实现事件和委托概念?

回答

9

是的,有。你会爱上ResultReceiver班。要创建一个,您需要通过一个Handler(在活动中创建),并覆盖onReceiveResult方法。

所以,你做的是发送ResultReceiver向服务(使用Intent演员),当XML解析完成后,你可以调用从Servicesend方法的引用。这样您的活动将被通知XML解析已完成。

有一个Google IO video这里解释了这种技术。您也可以在会议中使用download the slides

如果您需要示例代码,请查看iosched应用程序。它会教会如何创建ResultReceiver代理,它将帮助您处理配置更改(例如设备轮换更改)......因为,正如您所知,发生这种情况时会重新创建UI,因此可能导致内存泄漏(您知道该服务将指向不存在的UI元素)。