2011-08-17 105 views
2

我最近開發了一個薑餅應用程序。現在我想把它變成蜂窩狀。 現在我的asynctask有問題。我想從asynktask類傳遞信息(例如一個字符串)到活動,我從它開始。 對不起,這是我第一次使用asynctasks,所以我現在還不知道很多。如何從AsyncTask獲取字符串Android

回答

1

使用AsyncTask作爲內部類,並在調用AsyncTask.In外部類的外部類中聲明一個字符串,asyncTask指定在外部類中聲明的字符串的值。

0

RASEL建議就是可以是一個解決方案,你也可以簡單地使用的getter setter方法也是它的範圍是整個項目

public static String getStr() { 
    return str; 
} 

public static void setStr(String str) { 
    GlobalVariable.str = str; 
} 

使用這樣

​​

並獲取其值只需使用

String s = GlobalVariable.getStr(); 

這將返回上次更新的值。

+0

我必須把所有這些放在哪裏?我以爲我必須在onPostExecute()方法中做到這一點..但沒有任何工作。 – user878559

+0

我不能在同一班上有我的Asynctask我有活動可以嗎?因爲我可以擴展活動或Asynctask .... – user878559

2

是,解決的辦法是通過傳遞String,以使您AsynkTaskActivity的內部類,如果Activity你是說你要到例如TextView的文本設置爲String你可以做到這一點您的AsynkTaskonPostExecute()方法。

所以我們說,你doInBackground()方法做了一些處理,並構建一個String比它返回String,並把它傳遞給onPostExecute()方法,它運行在UIThread,並且可以修改您的Activity UI。

+0

謝謝你們! 你幫了我很多!它的工作很好:) – user878559

+0

你應該接受一個答案然後:) –

13

的方法執行返回AynscTask本身,你需要調用方法AsynkTask.get(),以獲取任務的結果(當然,如果結果類型爲字符串;)):

String output = new YourTask().execute(Params).get(); 
+0

這是我問自己完全相同的問題時,我的問題的解決方案。謝謝! –

+1

這個答案應該被接受爲正確答案。請這樣做:-) – Piscean

+0

非常感謝。 :) – Clindo

0

我認爲Rasel的報價是不可接受的。因爲Asynctask有不同的線程,所以有時會在Asynctask之前完成Asynctask之後打印任何全局變量。所以它有時會出現空或不需要的結果。