Java 控制流,同时通知适配器和触发意图

Java 控制流,同时通知适配器和触发意图,java,android,google-maps,listview,adapter,Java,Android,Google Maps,Listview,Adapter,我正在为一个双屏安卓设备编写一个应用程序 我有一个方法(在按下按钮时调用),它通知适配器(显示在一个屏幕上,即RightActivity),然后向另一个屏幕上显示的地图(即LeftActivity)触发意图。方法如下: public void onClick(View v) { MyAction.fireIntentToMap(context, myList); // fire intent to map on the left screen MyListAdapter.not

我正在为一个双屏安卓设备编写一个应用程序

我有一个方法(在按下按钮时调用),它通知适配器(显示在一个屏幕上,即RightActivity),然后向另一个屏幕上显示的地图(即LeftActivity)触发意图。方法如下:

public void onClick(View v) {

    MyAction.fireIntentToMap(context, myList); // fire intent to map on the left screen
    MyListAdapter.notifyDataSetChanged(); // adapter is for listview displayed on right screen
}
我想要的是,应该首先将意图激发到左侧屏幕上的映射活动,然后(即,显示意图中接收到的项目的映射)应该通知列表适配器,并且列表视图应该自我刷新

然而,这并没有发生。发生的情况是,调用进入
fireententomap
方法并触发意图(即调用
startActivity(intent);
。但是,在映射可以接收到意图之前,行
MyListAdapter.notifyDataSetChanged()
执行,列表视图被刷新。地图稍后会接收到意图

为什么会发生这种情况?我如何在这里获得单线程行为(首先映射进程意图,然后刷新列表视图)


.

正如您所注意到的,您无法控制意图何时实际“传递”

对于您的问题,有几种解决方案,但在我看来,最优雅的是使用。因此,您的地图和列表(动态)注册以接收广播,并设置优先级,以便按所需顺序调用广播

当您通过注册接收广播时,通过设置优先级


然后用触发广播。

感谢您的响应,但我并不是有意要
MyListAdapter
。我只是在上面调用
notifyDataSetChanged()