2011-04-18 176 views
2

在藍牙聊天的例子中,我想添加另一個活動。在建立連接和新活動加載時,如何保持連接仍然存在?保持連接活着嗎?

我加載新的活動後,onStop方法被調用,並且我可以使用之前建立的連接發送消息。我嘗試下面的代碼在我的新的活動:

BluetoothChat bt = new BluetoothChat();   
    public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.special_keys); 
    bt.sendMessage("hello"); 
    } 

我設法發送後的「你好」,但它強制關閉..必須有處理這種情況的有效方式。請幫忙。

在此先感謝。

回答

4

我最近創建了一個Android應用程序,它通過藍牙與硬件設備進行通信。在我的應用程序中,我有許多通過連接進行通信的Activity類,並且應用程序也在後臺執行連接的連續數據記錄。因此,希望我可以在這裏幫忙。 (這是我第一次嘗試在StackOverflow上發佈一個答案,所以對我來說很容易。)

在我的應用程序中,我首先將所有藍牙代碼放入一個單獨的專用類文件(我稱之爲BluetoothIF的.java)。此類中的構造函數執行基本的適配器初始化,併爲進行連接等任務提供進一步的方法。它包含Runnable類,用於建立連接,然後通過已建立的連接進行發送/接收。 (基本上它基於BluetoothChat示例。)

我不需要通過藍牙連接執行大量的通信,而且我還需要在後臺有一個服務來持續監視和記錄數據如前所述的連接。所以,我在服務中實例化了我的BluetoothIF。任何需要通過現有藍牙連接交換數據的活動類都會在我的應用程序中通過與服務交換消息來完成。

或者,如果您不需要使用服務,也許您應該使用單例模型或擴展應用程序類來跨越活動共享藍牙對象實例。

+0

沒有必要去容易的一個很好的答案:) – Aleadam 2011-05-26 18:36:47