2011-10-07 119 views
4

我有一個類(如幫助類) - 不是一個活動,它管理肥皂請求。我使用這個類來通過doInBAckground方法發送來自活動的soap請求,並通過onpostexecute從webservice捕獲所有返回值。一切都很好,但我的問題從這一點開始,因爲我無法將返回值asynctask類傳遞給主類。如何從AsyncTask返回主要活動的返回值?

+2

看一看這個【答案】(http://stackoverflow.com/questions/7618614/return- data-from-asynctask-class/7618705#7618705) –

+0

只使用活動的上下文並使用該上下文將該值設置爲活動的數據成員。 – user370305

+0

@AdilSoomro謝謝。以下是最新的runnab le代碼。 http://aaarkonusurum.blogspot.com/2011/10/asynctask-classtan-donen-parametreyi.html –

回答

1

你可以有一些實用工具類作爲單身人士(好吧,單身人士是危險的模式 ,但它的使用是有道理的,直到我們得到理智和usabel依賴注入),並在那裏傳遞結果。

Advandatges: - 傳遞數據或調用一些methid或做任何你喜歡 - - 所有的活動分享單身相同的服務實例與意圖/ serialisability 無需複雜。

缺點: - 單例模式被認爲是危險的

你甚至可以更進一步,讓您的服務單 - 你將開始它的方法是異步的任務,然後你的活動可以查詢通過專用方法的結果。

或者您可以更進一步 - 在異步服務中將您的活動註冊爲偵聽器,並在準備就緒時調用此活動中的方法(注意:因爲這不是UI線程,您將無法對UI執行某些操作除非你使用runOnUiThread()

1

您是否嘗試過實施的AsyncTask作爲一個內部類的活動嗎?