2010-11-24 67 views
4

我正在開發涉及藍牙通信的應用程序。即使設置連接的活動關閉,藍牙通信也應該繼續。首先,我曾考慮過使用服務,這似乎是正確的方式。但是,在藍牙聊天例子中,通信發生在另一個線程中,而不是在服務中。我在我的應用程序中使用了該代碼並正常工作。正在使用線程進行藍牙通信嗎?還是僅需要使用服務?藍牙通信應該是活動的,直到我的應用程序在RAM中,並且不應該在活動之間切換。Android中的線程或服務中的藍牙通信?

+0

有人可以讓我知道它是否適合在線程中進行藍牙通信而不是在服務中?我已經嘗試過使用線程並且現在正在工作,但希望確保以後我不需要更改代碼。 – sunil 2010-11-30 05:31:21

回答

0

那麼一個獨立的線程並不是不同於你的服務,除非它遵循Android的活動生命週期,但是一個線程可能會被終止並且沒有狀態可以被恢復。一旦它被殺死,Android將嘗試重新啓動服務。

0

有點太遲,以回答您的查詢,但遲到比我想象的更晚。 我曾在一個應用程序之間有兩個設備之間的藍牙通信,我想總結一下我的經驗。 當我們想要做一些我們需要的服務時,我們需要做一些不是很重的後臺進程,我的意思是服務(如果它很大)會阻塞我的主UI線程,從而減慢你的操作系統或ANR,這可能是是我們不想要的。

藍牙通信是一個永遠在運行的過程,應該只使用一個線程來完成,因爲這將作爲一個單獨的線程工作,並且不會對主UI線程產生任何影響。 如果我錯了,請糾正我。