Activity和fragment/service通信

转载 2016年08月28日 15:06:08

与service

1.Activity调用bindService (Intent service, ServiceConnection conn, int flags)方法,得到Service对象的一个引用,这样Activity可以直接调用到Service中的方法,如果要主动通知Activity,可以利用回调方法
2.Service向Activity发送消息,可以使用广播,当然Activity要注册相应的接收器。比如Service要向多个Activity发送同样的消息的话,用这种方法就更好 

与fragment

 1.handler

  • Fragment对具体的Activity存在耦合,不利于Fragment复用
  • 不利于维护,若想删除相应的Activity,Fragment也得改动
  • 没法获取Activity的返回数据
  • handler的使用个人感觉就很不爽(不知大家是否有同感)

 2.广播

  • 用广播解决此问题有点大材小用了,个人感觉广播的意图是用在一对多,接收广播者是未知的情况
  • 广播性能肯定会差(不要和我说性能不是问题,对于手机来说性能是大问题)
  • 传播数据有限制(必须得实现序列化接口才可以)  
 3.EvnetBus
  • EventBus是用反射机制实现的,性能上会有问题
  • EventBus难于维护代码
  • 没法获取Activity的返回数据

 4.接口

这种方案应该是既能达到复用,又能达到很好的可维护性,并且性能也是杠杠的。但是唯一的一个遗憾是假如项目很大了,Activity与Fragment的数量也会增加,这时候为每对Activity与Fragment交互定义交互接口就是一个很头疼的问题( 包括为接口的命名,新定义的接口相应的Activity还得实现,相应的Fragment还得进行强制转换
 http://www.tuicool.com/articles/NvI7Bjy


相关文章推荐

Android:activity,fragment和service之我见(准备更新)

工作刚开始接触Android项目,边学边做,不废话,本文纯为记录自己个人的学习成长。所以,想详细了解的请绕道! 1. activity: An activity is a single focused...
  • hgk324
  • hgk324
  • 2016年08月22日 21:59
  • 1169

如何在非Activity中启动、绑定Service(服务)

做Android开发的都知道,启动或绑定服务的语句是startService、bindService,可是这两个方法一般都只能在Activity中使用,也就是用Activity才能“.”的出这方法 ...

android在Fragment中启动服务

1.startService(new Intent(getActivity(),mService.class));2.getActivity().startService(new Intent(get...

利用接口实现service与Activity消息传递

背景最近在仿Android版QQ,在实现消息传递的时候遇到一个问题:在service中接受聊天消息,当收到聊天消息后,service负责将该聊天消息传递给聊天界面,怎么能是消息无延时的在service...
  • zjf1165
  • zjf1165
  • 2016年05月16日 23:20
  • 925

安卓服务——bind service一个绑定式的服务

绑定式服务的介绍 学习笔记,欢迎指导。 △绑定式的服务定义:一个由bindService()方法所开启的服务成为绑定式的服务。     →其他组件可以与该服务绑定,同时可以与他进行通信(包括向服务发...

在Service之间传递数据

在Service之间传递数据 http://blog.csdn.net/cx897459376/article/details/48764959?ref=myread         ...

EventBus,一个可以在Activity、Fragment、Service之间传递任意类型数据的事件总线框架

近两天学习了一个新的框架,就是EventBus,它可以取代intent,实现在不同组件之间进行数据传递。这里只是简单记录一下它的使用方法。以备不时之需。 第一步:导入EventBus的jar包,直接...

Android中Activity与Service的双向通讯

Android中Activity与本地Service的双向通讯

Fragment与Activity通信最好的方法

  • 2015年10月15日 15:50
  • 5.56MB
  • 下载

Fragment之间通过Activity通信

  • 2014年09月17日 12:56
  • 2.39MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Activity和fragment/service通信
举报原因:
原因补充:

(最多只允许输入30个字)