Bab*_*sad 5 android parcelable aidl android-service
我对服务创建期间的封送有一个简单的疑问。当接口中writeToParcel()
声明的方法在Parcelable
生成的存根中调用时(如果将aidl方法参数声明为in
),为什么接口中没有readFromParcel()
声明Parcelable
(用于out
参数)?
我可以创建自己的,readFromParcel()
但根据我的理解,readFromParcel()
如果生成的存根想要调用它,则 Parcelable 接口中应该有一个覆盖声明。但是Parcelable 接口的文档没有显示任何readFromParcel()
方法的迹象。为什么会这样?它是否包含在以前的 API 版本中,后来被删除了?请解释 !
如果 createFromParcel() 和 readFromParcel() 都试图读取一个 Parcelable 对象并用其中的数据填充成员字段,那么它有什么不同?
这是因为您已在 AIDL 中将该类型的参数声明为“inout”。
当从方法返回时,生成的 AIDL 代理将调用readFromParcel()
以更新参数值(由“inout”限定符定义)。
createFromParcel
正是它听起来的样子。创建了一个已写入 Parcel 的可 Parcelable 对象/类的新实例:Parcelable.writeToParcel()
已创建。这是一件好事,因为它有助于防止内存泄漏,因为您没有保留对可能已被销毁或尚未被销毁的另一个类的对象的引用
归档时间: |
|
查看次数: |
4552 次 |
最近记录: |