2011-03-01 84 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元素)。