2012-12-28 43 views
-2

我就AsyncTasks一個問題:安卓的AsyncTask

在我的項目我有多個的AsyncTask類,如CustomTask1和CustomTask2等等,這些我在做一些HTTPPOSTS和分析的東西。 作爲AsyncTasks的一個參數,我得到了一些最終的靜態字符串,例如(http:// IP /「Web界面的一些特殊命令」)。

實際上,我不想要4-5個AsyncTask類,因爲那裏的許多東西實際上是相同的,所以我多次寫了相同的代碼。 對一個AsyncTask進行編碼並在其中放入一些方法並定義靜態值,決定使用哪種方法會更好嗎?然後,問題是我還需要AsyncTask的不同返回值,有時是一個字符串,有時是一個ArrayList,該怎麼做?

,整個事情就有點整潔

謝謝

+0

以及如何返回不同的值我們應該在沒有任何代碼片段的情況下幫助您? – Houcine

+0

我並不是想要得到你的一些代碼,而是想知道如何「清理」我的項目 – user1515520

+0

你應該添加你的代碼,以幫助你用最好的方法來清理你的代碼 – Houcine

回答

0

如果你有一些被反覆在你的應用方法考慮寫擴展了應用類的類。瞭解更多關於它here

+0

感謝編輯,移動網址粘貼不是很有趣:) –

1

你寫:

我不想4-5的AsyncTask類「,導致很多東西在那裏實際上是相同的,所以我相同的代碼多次寫..

這就是問題所在 - 不要多次寫入相同的代碼,但是有多個AsyncTasks。 AsyncTasks應該只用作包含特定於任務的邏輯的每個特定任務類型的代碼的Facade。當然,如果這些任務共享相同的「算法部分」,那麼將這些算法部分寫入一個地方,並通過輸入的任務對其進行不同的揭示。我會做這樣的事情:

class TaskLogicImpl //contains various task general static methods like parsing string etc... 
{ 
    static void preParseServerResponse()....... 
} 

然後創建任務:

class Task1 : AsyncTask<URL, Integer, List> 
{ 
    call your. TaskLogicImpl.... 
} 

因爲每個任務類型,您將能夠在一個類型安全的方式

+0

是的,我知道你的意思。非常感謝你! 這些類真的共享相同的「算法片段」,所以我很想知道如果在「源代碼樣式」方面有更少的代碼會更好, – user1515520