首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 多 Activity 響應同一網絡消息:使用廣播機制

     編輯:程式設計綜合問答

方案

採用 本地廣播,網絡層收到資料後發送 LocalBroadcastManager.sendBroadcast(intent),各 Activity 註冊 BroadcastReceiver 接收。

實現步驟

  1. 定義 Action 常量:public static final String ACTION_DATA_RECEIVED = \"com.example.DATA_RECEIVED\";
  2. 網絡執行緒:
    Intent intent = new Intent(ACTION_DATA_RECEIVED);
    intent.putExtra(\"data\", receivedData);
    LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
  3. Activity 註冊:
    BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override public void onReceive(Context c, Intent i) {
            String data = i.getStringExtra(\"data\");
            // 更新 UI
        }
    };
    LocalBroadcastManager.getInstance(this).registerReceiver(receiver, new IntentFilter(ACTION_DATA_RECEIVED));
  4. onDestroy 解註冊。

優勢

  • 進程內通訊,安全高效。
  • 解耦網絡層與 UI 層,多 Activity 可同時響應。
  • 避免記憶體洩漏(LocalBroadcastManager 弱引用)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved