美文网首页Android开发
Android组件之间通信

Android组件之间通信

作者: 悠悠我心_4a00 | 来源:发表于2018-07-19 15:38 被阅读0次

    方式一: 使用Intent进行传值: (Activity与Activity之间)

    方式二:使用Binder传值 (Activity与Service之间)

    1.定义Service

    在Service里定义一个继承自Binder的内部类,通过这个类,把Service的对象传给需要的Activity,这样Activity就可以调用Service里的public方法和属性

    2.Activity绑定Service

    就是通过IBinder的getService来得到MyService对象,再去调用其Public方法

    方式三:使用Broadcast广播传值 广播通信方式

    其实就是使用Broadcast的发送和接受实现通信

    1、广播接收者BroadcastReceiver通过Binder机制向AMS(Activity ManagerService)进行注册;

    2、广播发送者通过binder机制向AMS发送广播;

    3、AMS查找符合相应条件(IntentFilter/Permission等)的BroadcastReceiver,将广播发送到

    BroadcastReceiver(一般情况下是Activity)相应的消息循环队列中;

    4、消息循环执行拿到此广播,回调BroadcastReceiver中的onReceive()方法。

    方式四: 使用Application,SharePreference,文件存储,数据库,ContentProvider等等

    就是使用Application在一个较长的生命周期中暂存一些数据,供不同的activity等去读写调用

    方式五:使用接口:

    就是定义一个接口,需要关注该事件的地方来实现这个接口。然后事件触发的地方来注册/取消注册这些对该事件感兴趣的控件.就是观察者模式  耦合比较严重。所以我们就需要用到更为简单的EventBus来解决组件之间的低耦合通信

    方式六:EventBus: 

    相关文章

      网友评论

        本文标题:Android组件之间通信

        本文链接:https://www.haomeiwen.com/subject/wpetmftx.html