首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在通知适配器和触发意图的同时控制流

在通知适配器和触发意图的同时控制流
EN

Stack Overflow用户
提问于 2011-11-24 16:47:36
回答 1查看 106关注 0票数 0

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

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

代码语言:javascript
复制
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
}

我想要的是,意图应该首先触发到左侧屏幕上的映射活动,然后(即,显示意图中接收到的项目的地图)应该通知列表适配器,并且列表视图应该刷新自身。

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

这一切为什么要发生?如何在这里获取单线程行为(首先映射进程意图,然后刷新列表视图)?

EN

回答 1

Stack Overflow用户

发布于 2011-11-24 17:07:30

正如您所注意到的,您无法控制意图何时真正“交付”。

您的问题有几种解决方案,但在我看来,最好的解决方案是使用ordered broadcasts。因此,您的map和list注册(动态)以接收广播,并设置优先级,以便以所需的顺序调用它们。

当您注册通过'Context.registerReceiver(..)'接收广播时,将通过'intentFilter.setPriority(..)'设置优先级。

然后使用`Context.sendOrderedBroadcast(..)'触发广播。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8254250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档