bindService------>AIDL传递Object

AIDL 实战:通过 bindService 传递 Object 对象
本文介绍了如何使用 Android Interface Definition Language (AIDL) 实现通过 bindService() 方法传递自定义 Object 类型。内容涵盖创建 User 实体类、编写 AIDL 文件、构建服务 LoginService,以及解决客户端在导入服务端 User 类时遇到的问题。关键步骤包括 User 类实现 Parcelable 接口,确保客户端与服务端的 AIDL 文件和包名一致。

AIDL---Android Interface Definition Language

看了很多AIDL传递对象的例子,但是始终不成功,不知道是哪里出问题了

这里说一下我的做法,这里最好有了解bindService()的基本知识

工具AS1.5


服务器端

在代码里会有解释

1.在java的包里面新建一个User实体类,用作传递

2.右击java-->new-->AIDL-->AIDL File   User.aidl(名字和实体类一样)

3.新建LoginAidl.aidl文件,这里面有接口,是用来传递对象的

4.Gradle

5.新建服务LoginService

最后的目录结构,也有把User和两个aidl放在一起的,我这样做了,编译时会报找不到类的错误

User.java

这里的代码都是自动生成的。注意要实现parcelable接口

import android.os.Parcel;
import android.os.Parcelable;

/**
 * Author Kevin
 * Date 2016/1/11 9:18
 * Email Bridge_passerby@outlook.com
 */
public class User implements Parcelable {

	public User(String name, String pwd) {

		this.name = name;
		this.pwd = pwd;
	}

	@Override
	public boolean equals(Object o) {

		if (this == o) return true;
		if (o == null || getClass() != o.getClass()) return false;

		User user = (User) o;

		if (name != null ? !name.equals(user.name) : user.name != null) return false;
		return !(pwd != null ? !pwd.equals(user.pwd) : user.pwd != null);

	}

	@Override
	public int hashCode() {
		int result = name != null ? name.hashCode() : 0;
		result = 31 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值