我正在開發一個應用程序,通過藍牙傳輸實時傳感器數據,然後有幾個活動可以在此實時數據流上工作,以不同方式顯示它(例如統計數據,直方圖,趨勢圖等)當應用程序退出或移動到背景時,Android關閉服務
我需要維護跨活動的藍牙鏈接,並且我還需要維護將數據接收到跨活動的緩衝區中(例如,您可以查看趨勢圖活動中的數據,然後跳進一個統計活動,沒有它清除數據。)
我如何做到這一點是擴展應用程序,並擁有一個自定義類,它保存所有相關t藍牙對象(藍牙設備,IOstreams)。然後,當用戶通過首頁活動啓動連接時,藍牙連接就會打開並啓動一個服務,從輸入流中讀取數據,將其轉換並存儲到數組列表中。然後任何顯示活動在這個ArrayList上工作。
這很好。但是當應用程序被終止或放入後臺時,我無法解決如何關閉藍牙連接和服務。因爲確保藍牙連接正確關閉非常重要,否則可能很難重新建立連接。
關於迄今爲止我所做的最好的事情是實現一個任務轉換計時器,如後https://stackoverflow.com/a/15573121/3015368所述,並在計時器完成時關閉連接和服務。
我希望有這樣做的更好方法?
問題是,在它們之間切換時,onPause和onResume會在每個Activity上調用。我需要保持連接處於活動狀態,並且只有在應用程序(而不是單個活動)被殺死或後臺關閉時才關閉它。 – Harvs
請轉到此問題[鏈接](http://stackoverflow.com/questions/9099598/android-detect-when-an-application-as-a-whole-not-individual-activities-is-pa)其中的與你的一樣,並嘗試答案 –