採用 本地廣播,網絡層收到資料後發送 LocalBroadcastManager.sendBroadcast(intent),各 Activity 註冊 BroadcastReceiver 接收。
public static final String ACTION_DATA_RECEIVED = \"com.example.DATA_RECEIVED\";Intent intent = new Intent(ACTION_DATA_RECEIVED);
intent.putExtra(\"data\", receivedData);
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);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));onDestroy 解註冊。LocalBroadcastManager 弱引用)。