回覆列表
  • 1 # 使用者5417479144445

    剛剛成功解決了這個問題:

    解決這個問題大抵有三種方法:

    1、使用單例模式

    2、將socket封裝在service中

    3、application實體類

    前兩種方法,Stackflow上有較多的實現方式,但個人認為短時間內較難上手,而且不方便及時處理接收到的資訊

    這種方法的實質,我認為就是把socket當做一個全域性變數

    1、首先,實現MySocket類

    setSocket()是在第一次在某個activity中socket初始化後,將其儲存下來

    getSocket(),其他的acticity中呼叫,便可獲得之前建立過的socket,從而達到共享目的

    2、設定AndroidManifest.xml

    3、首次初始化socket(這也算是比較優良的在Android中實現socket的例子)

    我加粗的那行程式碼,((MySocket)getApplication()).setSocket(socket); 首次初始化後socket,賦值給全域性

    4、在其他activity中再呼叫

    大致上就是如此,可以較為便捷的實現我們的目的。此外再提醒一點,別忘了在AndroidManifest.xml中新增各種需要的許可權

  • 中秋節和大豐收的關聯?
  • "萬般皆下品,唯有讀書高",這句詩詞對我們現在有什麼指引?