Android IPC机制Messenger实例详解
前言:
Messenger可以翻译成信使,通过它可以在不同进程间传递Message对象有了它就可以轻松实现进程间的数据传递了。
Messenger使用的方法相对AIDL比较简单,它对AIDL做了一层封装是的我们不需要像采用AIDL那样去实现进程通信那么麻烦,可以看看他的源码有AIDL的迹象。
public final class Messenger implements Parcelable { private final IMessenger mTarget; public Messenger(Handler target) { mTarget = target.getIMessenger(); } public void send(Message message) throws RemoteException { mTarget.send(message); } public IBinder getBinder() { return mTarget.asBinder(); } public boolean equals(Object otherObj) { if (otherObj == null) { return false; } try { return mTarget.asBinder().equals(((Messenger)otherObj) .mTarget.asBinder()); } catch (ClassCastException e) { } return false; } public int hashCode() { return mTarget.asBinder().hashCode(); } public int describeContents() { return 0; } public void writeToParcel(Parcel out, int flags) { out.writeStrongBinder(mTarget.asBinder()); } public static final Parcelable.Creator<Messenger> CREATOR = new Parcelable.Creator<Messenger>() { public Messenger createFromParcel(Parcel in) { IBinder target = in.readStrongBinder(); return target != null ? new Messenger(target) : null; } public Messenger[] newArray(int size) { return new Messenger[size]; } }; public static void writeMessengerOrNullToParcel(Messenger messenger, Parcel out) { out.writeStrongBinder(messenger != null ? messenger.mTarget.asBinder() : null); } public static Messenger readMessengerOrNullFromParcel(Parcel in) { IBinder b = in.readStrongBinder(); return b != null ? new Messenger(b) : null; } public Messenger(IBinder target) { mTarget = IMessenger.Stub.asInterface(target); }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- PHP数据类型转换常见误区解析
- 如何在 Java 中高效地创建列表?(如何在Java中创建列表)
- Java中dubbo的最佳实践案例有哪些?(java中dubbo有哪些最佳实践案例)
- 如何通过 Java 代码获取当前时间戳?(如何使用Java获取当前时间戳)
- 如何使用 Java 编写一个 circular 类?(怎么用java编写一个circular类)
- 在 Java 中如何安全地进行 SQL 拼接?(Java中怎么安全的进行SQL拼接)
- Java 的 enum 有哪些需要注意的事项?(java的enum的注意事项)
- 深入解析:如何有效提升PHP数据类型的转换效率
- 如何在 Java 中实现轮询?(java如何实现轮询)
- 如何在 Java 中获取当前时间戳?(java怎么获取当前时间戳)
猜你喜欢
AI推送时光机Android IPC机制Messenger实例详解
后端开发2023-05-30
Android IPC机制利用Messenger实现跨进程通信
后端开发2022-06-06
Android 消息机制详解及实例代码
后端开发2022-06-06
Android IPC机制绑定Service实现本地通信
后端开发2022-06-06
Android编程中的消息机制实例详解
后端开发2022-06-06
Android同步屏障机制syncbarrier实例应用详解
后端开发2023-02-07
Android 绘制太极图实例详解
后端开发2022-06-06
Android listView 绘制表格实例详解
后端开发2022-06-06
java回调机制实例详解
后端开发2023-05-31
Android 控制ScrollView滚动的实例详解
后端开发2023-05-30
PHP GC回收机制实例详解
后端开发2024-04-02
Java 反射机制的实例详解
后端开发2023-05-31
Java泛型Generic机制实例详解
后端开发2022-11-13
java 代理机制的实例详解
后端开发2023-05-31
Java 反射机制详解及实例
后端开发2023-05-31
Android View 绘制机制的详解
后端开发2023-05-31
Android 中Looper机制详解
后端开发2023-09-09
详解Android中AsyncTask机制
后端开发2022-06-06
Android亮屏和熄屏控制实例详解
后端开发2022-06-06
Android AsyncTask实现机制详细介绍及实例代码
后端开发2022-06-06
咦!没有更多了?去看看其它编程学习网 内容吧