如何在 AIDL 中使用 Parcelable
How to use Parcelable in AIDL
我定义了一个实现 Parcelable
的 class,像这样:
public class Book implements Parcelable
而且我知道我可以像这样在 AIDL 文件中使用这个 class:
import com.okay.demo.aidl.bean.Book;
interface IBookManager {
void addBook(in Book book);
}
但我想知道的是,如果我不知道实现 class,我可以只在 AIDL 文件中 Parcelable
吗?我可以像这样使用 Parcelable
吗:
interface IBookManager {
void addData(in Parcelable data);
}
我曾尝试将 Book
替换为 Parcelable
,但没有成功。
或者它不能在 AIDL 中执行此操作?
Android documentation 表示您应该为 class Book
创建一个 AIDL 文件。您的 Book.aidl
应如下所示:
import com.okay.demo.aidl.bean.Book;
// Declare Rect so AIDL can find it and knows that it implements
// the parcelable protocol.
parcelable Book;
有了这个新文件,您现在可以在 AIDL 文件中使用 Book
:
import com.okay.demo.aidl.bean.Book;
interface IBookManager {
void addData(in Book book);
}
我定义了一个实现 Parcelable
的 class,像这样:
public class Book implements Parcelable
而且我知道我可以像这样在 AIDL 文件中使用这个 class:
import com.okay.demo.aidl.bean.Book;
interface IBookManager {
void addBook(in Book book);
}
但我想知道的是,如果我不知道实现 class,我可以只在 AIDL 文件中 Parcelable
吗?我可以像这样使用 Parcelable
吗:
interface IBookManager {
void addData(in Parcelable data);
}
我曾尝试将 Book
替换为 Parcelable
,但没有成功。
或者它不能在 AIDL 中执行此操作?
Android documentation 表示您应该为 class Book
创建一个 AIDL 文件。您的 Book.aidl
应如下所示:
import com.okay.demo.aidl.bean.Book;
// Declare Rect so AIDL can find it and knows that it implements
// the parcelable protocol.
parcelable Book;
有了这个新文件,您现在可以在 AIDL 文件中使用 Book
:
import com.okay.demo.aidl.bean.Book;
interface IBookManager {
void addData(in Book book);
}