Messenger实现进程间双向通信

Messenger实现进程间双向通信

简介

Messenger是安卓进程间通信 (IPC) 最为简单的方式,可以实现进程间双向通信。详见官网介绍
https://developer.android.google.cn/guide/components/bound-services#Messenger

代码实现

服务端应用实现

MessengerService接收客户端发送的消息:

package com.test.messengerservice;
import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.Messenger;
import android.os.RemoteException;
import android.util.Log;
import androidx.annotation.NonNull;

public class MessengerService extends Service {
   

    //接收客户端的消息类型
    private static final int SEND_MESSENGER = 0;
    private static final int REQUEST_BIND_STATUS = 1;
    private static final int CONFIG_NET = 2;
    private static final int CANCEL = 3;

    //发送给客户端的消息类型
    private static final int FIND_DEVICE = 10;

    public MessengerService() {
   
    }

    private Messenger messenger = new Messenger(new ServiceHandler());
    private static Messenger mClient;

    public class ServiceHandler extends Handler {
   

        @Override
        public void handleMessage(@NonNull Message msg) {
   
            // 处理消息
            switch(msg.what){
   
                case SEND_MESSENGER:
                    Log.d("service", "receive messenger");
                    mClient = msg.replyTo;
                    break;
                case CONFIG_NET:
                    Log.d("service", "config net task");
                    mClient = msg.replyTo;
                    String ssid = msg.getData().getString("ssid");
                    String pwd = msg.getData().getString("pwd");
                    Log.d(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值