我是一個android noob,正在尋找一些關於如何在Android中正確使用服務的建議。我正在構建一個應用程序,該應用程序將連接到Internet上的服務器以通過TCP獲取數據流。該數據然後需要發送到另一個通過藍牙串行端口連接的設備。我希望這可以在用戶查看不同的活動時在後臺繼續運行。Android服務設計 - 從活動開始還是僅在需要時開始?
該應用程序將是一個NTRIP客戶端,它從互聯網上提取實時RTK校正數據,並將其發送到我通過藍牙連接的RTK GPS接收器。數據速率將約爲500字節/秒。用戶界面是一個單獨的按鈕,用於連接或斷開數據流和一些文本以顯示GPS接收器的狀態。還有一些設置需要用戶配置,例如要連接的服務器的IP /端口和藍牙設備進行通信。
我認爲我需要讓主要活動產生一個本地服務,然後讓服務爲TCP流創建一個線程,爲藍牙連接創建另一個線程。這聽起來正確嗎?
這種情況下服務的最佳模式是什麼?
- 每次活動開始時啓動(綁定)服務,並使連接/斷開按鈕向服務發送命令以啓動/停止線程。如果我走這條路線,服務將在用戶斷開連接並轉到另一個應用程序後繼續運行。該服務需要一個不活動計時器來終止自己。
- 當用戶按下連接/斷開按鈕時開始並停止服務。該服務僅在數據移動時運行。如果我這樣做,活動將需要查看活動開始時服務是否正在運行,以便知道它是否應綁定到服務或告訴用戶鏈接已斷開。
謝謝。
部分錯誤,其他部分完全混淆不清,甚至可能錯誤。 – 2010-11-24 22:17:19