关于Handler机制的使用

win-sun 2014-05-28 03:46:35
我现在的问题是,我要从两个服务器接收信息展示到一个页面,每个服务器获得的信息都通过Handler消息机制发送到页面。这样的话,页面上获得的Message应该是两个(理论上),但实际上只看到一个。我不知道这个思路是否正确,如何可以实现的话,怎么获取另外一个Message,利用消息栈?麻烦大神解答下。在线急求!!!!!
...全文
144 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
baiyewu19 2014-05-29
  • 打赏
  • 举报
回复
把你发送的message贴出来看看呗
乐逍遥二 2014-05-29
  • 打赏
  • 举报
回复
以我的经验来判断要写两个线程
win-sun 2014-05-29
  • 打赏
  • 举报
回复
问题解决了,消息在页面是可以重复接收来自不同的服务器的(只要能正确发送出去)。 发送消息写在线程里就可以执行:
		//制作数据
				data = new ArrayList<List>();
				data.add(groupArray);
				data.add(childArray);
				new Thread() {
					public void run() {
						try {
							Message msg = downhandler.obtainMessage();
							msg.what = DOWN;
							msg.obj = data;
							downhandler.sendMessage(msg);

						} catch (Exception e) {
							e.printStackTrace();
						}
						;
					};
				}.start();
	/*			new Thread() {
					public void run() {
						try {
							downhandler = new Handler() {
								@Override
								public void handleMessage(Message msg) {
									Message msg = downhandler.obtainMessage();
									msg.what = DOWN;
									msg.obj = data;
									downhandler.sendMessage(msg);
								}
							super.handleMessage(msg);
							
						} catch (Exception e) {
							e.printStackTrace();
						}
					}.start();*/
注释是错误的代码,不能发送消息。而且我的这个是写在另外一个类里,所以与直接写在页面里的发送有区别。 这里的handler对象是传递过来的。网络操作写在里面就可以执行了。
win-sun 2014-05-28
  • 打赏
  • 举报
回复
引用 4 楼 HawkOfWinter 的回复:
execute()函数有局限性。 executeOnExecutor()调用者可以自己创建线程池,让提交的任务,立刻在自己的线程池中执行,而不用提交到系统的线程池中去。 会不会是在排队中...?
不之说云;
中才德创 2014-05-28
  • 打赏
  • 举报
回复
execute()函数有局限性。 executeOnExecutor()调用者可以自己创建线程池,让提交的任务,立刻在自己的线程池中执行,而不用提交到系统的线程池中去。 会不会是在排队中...?
win-sun 2014-05-28
  • 打赏
  • 举报
回复
你是说把两次请求放到一个Message里?
sizhibuyuan 2014-05-28
  • 打赏
  • 举报
回复
两个请求都完成后,再发送message
win-sun 2014-05-28
  • 打赏
  • 举报
回复
为啥没人,顶起。。。

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧