Activity与service间的Messenger通信方式
发布日期:2021-06-30 18:39:49 浏览次数:3 分类:技术文章

本文共 892 字,大约阅读时间需要 2 分钟。

service中通过handler机制发送消息给activity,主要是使用Messenger这个类

需要把我们activity中定义的handler的引用传递给service

  1. 定义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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android4.4中拒绝发送Intent.ACTION_MEDIA_MOUNTED扫描SD卡的广播
下一篇:httpClient发送key_value、json参数及文件

发表评论

最新留言

不错!
[***.144.177.141]2024年04月06日 04时07分25秒