2016-04-06 194 views
0

我正在編寫一個Android應用程序,我需要顯示一些非活動類的結果。 基本上我的應用程序獲取當前的位置,活動和其他東西,並在那些我運行一些功能,例如,以檢查用戶是否曾在那個地方。 無論如何,一個intent會觸發這些函數,並且在函數的結尾我想用這些函數的結果更新一個TextView。Android:從非活動類更新TextView

但是,除了MainActivity之外,它似乎並沒有工作。我試着讓TextView成爲靜態的,但這似乎不起作用,並且將結果返回給MainActivity也是不可能的,因爲它不是直接從MainActivity調用的。

是否有一些關於如何解決這個問題的想法? 這是我的第一個android項目,所以還有很多我不知道的東西。謝謝!

+2

你能請問[mcve]你的問題?理想情況下,你不應該在View類之外更新TextView(例如Activity)中的定義 –

+0

非活動類是什麼意思? – Pooya

回答

0

我不確切地知道你的代碼是什麼樣的,但是你有一個模型類來保存你所有的數據(例如某種單例)嗎?如果是這樣,你可以保存更新的文本,然後在回調方法中更新TextView。

如果這不符合你正在做的,我會考慮重構你的代碼,以便你想要的文本被髮送回你的MainActivity。你提到該方法不是直接調用的,但是你的計算是否可以將文本傳遞給一箇中間類,然後將它傳遞給你的MainActivity?

+0

謝謝大家迄今爲止的答案! 我會盡力解釋一些! 在我的MainActivity類中,我實例化了一些類,一分鐘就獲得某種信號(通過Intent)。例如一個GPS類,它獲取當前位置。 onHandleIntent()然後從另一個調用中調用一個函數,它根據這些值進行一些計算(例如,以檢查該人是否曾經在那個地方) 這個函數的結果是我想要顯示的。 我希望這可以讓它更清晰一些。我會張貼代碼,但我真的不知道要發佈什麼.. – Leni

0

你不應該更新ui drom後臺線程。 如果你想從後臺線程使用處理程序,AsyncTask或使用其他一些線程概念來更新ui。

如果您想更新回回服務或廣播接收器,例如UI收到內部broadcasrReceiver的的onReceive消息現在更新UI使用sendBroadcast和你的活動中registet動態廣播接收器,然後更新