2011-06-02 18 views
1

首先,我應該清楚提供一些背景知識:我使用Eclipse開發繪製藍牙數據的Android應用程序。它主要由藍牙活動,由藍牙活動創建的後臺線程和繪圖活動組成。如何將數據從一個活動創建的後臺線程發送到另一個已知活動的活動?

我的問題的主要焦點:一旦已知繪圖活動處於活動狀態,可以使用什麼方法將BluetoothData從後臺線程發送到繪圖活動,以便我可以繪製它?

這是我開源的開源代碼。使用Logcat我知道一個事實,即藍牙活動消失後,Bluetooth Activity創建了一個後臺線程來連續生成BluetoothData。我找到了將LogData記錄到Logcat的背景方法。現在我想利用這種方法將BluetoothData發送到活動的繪圖活動,以便我可以繪製它。

我可以告訴你什麼似乎工作。感興趣嗎?在Plotting Activity中定義一個靜態方法plotData(BluetoothData),並從後臺線程調用if。實時剪輯就好了。情節很好。但是我被告知我不應該使用靜態方法,好像有一些問題。那麼我還應該使用什麼?

有什麼建議嗎?

回答

2

您不應該使用background thread。相反,您應該使用收集數據的Service。在這種情況下,您創建的每個活動都可以綁定到該服務,並在收到新數據時收到通知。通過處理程序,該服務可以輕鬆地將數據發送到綁定的活動。

有一個小問題:你能解釋一下爲什麼靜態方法會出現問題,更確切地說:哪種問題?

+0

在我的問題我說,這是我打開的開源代碼。我不太可能改變設計,而是延長設計。所以使用靜態方法是擴展實際工作的設計的唯一方法。至於靜態方法的問題,我不知道。也許線程安全? – Vince 2011-06-03 19:26:27

+0

你寫道,你被告知有問題。當你使用一個處理程序,而不是一切都應該罰款... – WarrenFaith 2011-06-04 00:16:26

+0

@CommonsWare告訴我將我預先退出的後臺線程/邏輯放入服務中。我沒有最好的記憶,但我相信他就是這麼說的。這就是我將要做的。 @CommonsWare擁有超過10萬的聲譽,所以我傾向於相信他並聽取他的建議。 – Vince 2011-06-09 19:22:13

相關問題