Activity与service间的Messenger通信方式
发布日期:2021-06-30 18:39:49
浏览次数:3
分类:技术文章
本文共 892 字,大约阅读时间需要 2 分钟。
service中通过handler机制发送消息给activity,主要是使用Messenger这个类
需要把我们activity中定义的handler的引用传递给service
- 定义handler
private Handler handler = new Handler() { //接收结果,刷新ui public void handleMessage(android.os.Message msg) { switch (msg.what) { case xxx: break; default: break; } };};
2.启动服务的时候.传递一个Messenger过去
Intent service = new Intent(MainActivity.this, MusicService.class);service.putExtra("messenger", new Messenger(handler));
3.从intent里面取出Messenger
@Overridepublic int onStartCommand(Intent intent, int flags, int startId) { // 得到发信人,作用跟hander一样,实际就是包装了一个handler if (mMessenger == null) { mMessenger = (Messenger) intent.getExtras().get("messenger"); } return super.onStartCommand(intent, flags, startId);}
4.使用Messenger发送信息
Message msg = Message.obtain();msg.what = xxx;msg.arg1 = xxx;msg.arg2 = xxx;//发送消息mMessenger.send(msg);
转载地址:https://linqiarui.blog.csdn.net/article/details/51315206 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月06日 04时07分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
CodeForces - 1059B Forgery (思维)
2021-07-03
CodeForces - 456C Boredom (dp)
2021-07-03
CodeForces - 960B Minimize the error (思维,贪心)
2021-07-03
CodeForces - 97B Superset (思维/分治/构造)
2021-07-03
CodeForces - 675A Infinite Sequence(简单数论 细节)
2021-07-03
CodeForces - 1042B Vitamins (思维)
2021-07-03
ACM 2013 长沙区域赛 Alice's Print Service (二分 思维)
2021-07-03
ACM 2013 长沙区域赛 Collision (几何)
2021-07-03
CodeForces - 1064A Make a triangle! (简单模拟)
2021-07-03
51Nod - 1183 编辑距离 (dp)
2021-07-03
ACM 2014 鞍山区域赛 E - Hatsune Miku (dp)
2021-07-03
反向传播&梯度下降 的直观理解程序(numpy)
2019-04-30
ACM 2017 南宁区域赛 Rake it in(对抗搜索)
2019-04-30
CodeForces - 931B World Cup (思维 模拟)
2019-04-30
CodeForces - 996D Suit and Tie (暴力)
2019-04-30
ACM 2017 香港区域赛 E - Base Station Sites(二分)
2019-04-30