我目前正在研究一個應用程序,該應用程序連接到藍牙設備並每0.25秒接收一條消息,然後在屏幕上顯示該數據。用戶還可以隨意啓動/停止將此數據記錄到SD卡上的文件中。Android後臺任務和生命週期
我已經嘗試過擴展一個線程類,它偵聽來自BT設備的消息,然後使用一個處理程序將數據發送回UI線程並顯示它。
這是工作正常,但配置更改,如屏幕旋轉,當活動被破壞和重新創建BT線程被複制,我不能再與它溝通。我沒有問題,如果我停止onStop()中的BT線程並在onResume()中重新啓動它,但然後我需要重新連接到BT設備,並且如果用戶正在記錄數據,那麼將會中斷。
完成此功能的正確方法是什麼?有沒有一種方法來設置我的線程,使其不會重複,或者可以在更改配置後重新連接到它?我是否應該爲BT連接和日誌記錄查看服務,然後以某種方式從服務中獲取供稿以在UI上顯示?
謝謝!
這是可能是最好的解決方案,因爲您還需要防止手機在操作過程中接聽電話。 – Wizetux 2012-01-12 01:39:08
@Wizetux正是這正是我的想法。好點子。 – 2012-01-12 01:42:54
這是我沒有考慮過的一個很好的觀點。我不熟悉服務,但是從閱讀這裏的文檔:http://developer.android.com/reference/android/app/Service.html我想我開始得到一個很好的理解。 – Matt 2012-01-12 01:55:13