2011-06-07 33 views
0

當談到Android開發時,我幾乎是一個noob。我有一個Activity,它有一個方法,幾乎​​只是將TextView的文本設置爲提供的任何文本作爲參數。我有第二個類,它是一個Runnable,我希望能夠給它一個Activity(或以某種方式獲取Activity),因此它可以在需要時調用該方法。發送活動給非Android類

此Runnable最終將與服務器連接,因此它可以使用來自服務器的信息更新應用程序。我之前已經完成了客​​戶端/服務器Java的東西,所以這不是問題。我只需要弄清楚如何在這個Runnable和Activity之間進行通信。

本來我只是通過活動本身,但我讀到它會產生問題,如果我這樣做。相反,我本應通過getApplicationContext()傳遞一個ApplicationContext。我這樣做了,但現在我不知道如何處理ApplicationContext。我嘗試將它轉換爲我的Activity類,但程序只是崩潰。

我該如何實現我的目標?

+1

您可以發佈代碼 偶然? – Terrance 2011-06-07 21:51:14

+0

這聽起來不像您在您的代碼結構中遵循Android最佳實踐。爲什麼可運行的嘗試直接在文本視圖中設置文本?你應該爲此使用AyncTask嗎?還是服務? – 2011-06-07 21:57:59

回答

0

Android中有幾種處理線程的特定方法,如AsyncTask s等,您應該瞭解如何執行「無痛」線程here。如果它只是連接到服務器的一次性任務,請獲取該值,將其設置爲TextView,然後完成,我認爲AsyncTask將是您的最佳選擇。持續的後臺進程更適合於services

0

你可以通過你的活動,你的第二類像這樣的構造:

public SecondClass(YourActivity _yourActivity){ 
this.activity = _yourActivity; 
//do stuff 
} 

,並在你的活動,您可以實例化類是這樣的:

SecondClass instance = new SecondClass(this); 

注:在您的SecondClass中,如果您想更改應用程序的UI,可以使用方法runOnUiThread(Runnable);