handler怎么传数据? 我在主线程里面启动了一个service,在service里面启动了一个线程,在线程中实例化了一个handlerhandler处理好数据之后,怎么样才可以传回主界面MainActivity呢?? 线程神马的都是用的外部类... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Message msg = new Message(); msg.what = 66000 + Util.onCmmbGetSignalStatus; Bundle bundle = new Bundle(); bundle.putInt("signalPower", signal.signalPower); bundle.putInt("signalQuality", signal.signalQuality); bundle.putInt("SNR", signal.SNR); bundle.putInt("reserved1", signal.reserved1); bundle.putInt("reserved2", signal.reserved2); msg.setData(bundle); handle.sendMessage(msg);如上 Message msg = new Message();msg.arg0msg.arg1msg.what Message msg = handler.obtainMessage(); msg.arg1 = i; msg.sendToTarget(); Message msg=new Message(); msg.arg1=i; handler.sendMessage(msg);第一种写法是message 从handler 类获取,从而可以直接向该handler 对象发送消息;第二种写法是直接调用 handler 的发送消息方法发送消息。 对2L的回答稍作补充,handler是在新线程中实例化的, handler.sendMessage(msg)仍会将消息传递到新线程中处理,所以此处的handler并非是你在新线程中的,而应是在主线程中。除此之外,如果是需对UI操作,可在新线程中使用post方法。AsyncTask没准也适合你,可以试试看。 AsyncTask,试一下这种方法吧。 service运行Handler:得到Handler对象通过Handler对象得到Message(android推荐)最后再发送消息(貌似用arg好像速度快点)再这也借这楼问个关于Handler的问题,忘老鸟解答我们直接New Hanlder() 不带参数的话 默认的是主线程的Looper 也就是主线程的Handler但我这样在程序中 试 得到的不是主UI的Handler 这是怎么会事?(代替的方法我把Handler弄成静态的了 但这样又带来了新的问题 在这就不说了)还当一个主线程下有多个Handler 我通过new Handler()方法又得到是那个Handler? 怎么把同一线程的Handler 进行区分?忘高手解答?还有Ls的说到了AsyncTask 其实据鄙人所知的Activity和Service通信有不下10种方式有老鸟能说说最方便的是那种 说出理由吗?跪求???? java Bug? 在转换时间时,发现在1941年之前的转换就有问题。 路过的都看看,,如果懂,,就请您多指教 android如何访问百度网站 ComponentName怎么用啊? 关于长按Home键进入程序和从桌面进入程序的问题 Fragment中添加菜单项和返回键的问题。大牛,救急 Android中如何处理拉长图片而不变形 请问关于主界面的底部菜单问题 Android APP如何接入CAS单点登录系统 Android Studio 2.2.3 创建空白模板编译出错 android重新启动后,/system/etc/seurity/下文件为叙会还原? Android人人网客户端实现思路?
msg.what = 66000 + Util.onCmmbGetSignalStatus;
Bundle bundle = new Bundle();
bundle.putInt("signalPower", signal.signalPower);
bundle.putInt("signalQuality", signal.signalQuality);
bundle.putInt("SNR", signal.SNR);
bundle.putInt("reserved1", signal.reserved1);
bundle.putInt("reserved2", signal.reserved2);
msg.setData(bundle);
handle.sendMessage(msg);
如上
msg.arg0
msg.arg1
msg.what
Message msg=new Message(); msg.arg1=i; handler.sendMessage(msg);
第一种写法是message 从handler 类获取,从而可以直接向该handler 对象发送消息;
第二种写法是直接调用 handler 的发送消息方法发送消息。
除此之外,如果是需对UI操作,可在新线程中使用post方法。AsyncTask没准也适合你,可以试试看。
得到Handler对象
通过Handler对象得到Message(android推荐)
最后再发送消息(貌似用arg好像速度快点)再这也借这楼问个关于Handler的问题,忘老鸟解答
我们直接New Hanlder() 不带参数的话 默认的是主线程的Looper 也就是主线程的Handler
但我这样在程序中 试 得到的不是主UI的Handler 这是怎么会事?(代替的方法我把Handler弄成静态的了 但这样又带来了新的问题 在这就不说了)还当一个主线程下有多个Handler 我通过new Handler()方法又得到是那个Handler? 怎么把同一线程的Handler 进行区分?
忘高手解答?
还有Ls的说到了AsyncTask 其实据鄙人所知的Activity和Service通信有不下10种方式
有老鸟能说说最方便的是那种 说出理由吗?
跪求????