1

我目前正在开发一个 Android 应用程序作为直升机的遥测应用程序。我有一个 udp 服务器,它通过网络发送数据。

有一个 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 实现了观察者接口。现在我的问题是,我添加到观察者列表中的数据视图实例是另一个实例,而不是我开始单击选项菜单时的数据视图。任何想法如何通过选项菜单启动相同的实例?

startActivity(new Intent(getApplicationContext(),
                DataViewActivity.class));
4

1 回答 1

1

你根本不应该使用new Activity()任何形式。无论您使用什么,您都应该仅通过执行 startActivity 调用来启动您的 Activity。您的当前 Activity 应该实现 Observer 接口并在收到通知时启动新的 Activity。您不能创建/存储活动 - 这是框架工作

于 2012-11-16T19:47:46.880 回答