我目前正在開發一個Android應用程序作爲一個直升機的遙測應用程序。 我有一個udp服務器,通過網絡發送數據。Android與Oberserver模式 - 如何初始化活動?
有一個udp客戶端在一個單獨的線程來處理網絡連接。 在我ConnectActivity我加入我的觀察是這樣的:
Observer dataView = new DataViewActivity();
Observer osmDroidView = new OSMDroidMapsActivity();
udpClient.getDataNotifier().addObserver(dataView);
udpClient.getDataNotifier().addObserver(osmDroidView);
在我OptionsMenu我就比如我DataViewActivity:
MenuItem dataItem = menu.add("Data");
dataItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
的DataViewActivity實現Observer接口。 現在我的問題是,我添加到我的觀察員列表中的dataview實例是另一個實例,而不是我的數據視圖,我通過點擊我的選項菜單開始。 任何想法如何通過選項菜單啓動相同的實例?
startActivity(new Intent(getApplicationContext(),
DataViewActivity.class));
你需要做一些像'udpClient.getDataNotifier()。addObserver(this);'在新創建的Activity中。您在啓動時無法獲得對「Activity」的引用,因爲它尚不存在。並且不要嘗試自己創建一個「Activity」實例。這應該由系統完成。 – zapl