一种设备屏幕页面与子页面之间互相通信的方法及系统技术方案

技术编号:13736661 阅读:38 留言:0更新日期:2016-09-22 05:01
本发明专利技术公开了一种设备屏幕页面与子页面之间互相通信的方法及系统,涉及安卓的应用程序领域。Activity向Fragment通信时:该系统的Activity端发送接口用于:发送与Fragment通信的请求命令,与Fragment通信的请求命令中包括Fragment的tag、name和data;Fragment端接收接口用于:得知Activity发送的name和data;Fragment向Activity通信时:该系统的Fragment端发送接口用于:发送与Activity通信的请求命令,与Activity通信的请求命令中包括Activity的name和data;Activity端接收接口用于:得知当前Fragment发送的name和data。本发明专利技术在Activity和Fragment之间进行相互通信时,能够精简调用过程,进而达到简化操作过程、增加开发效率的目的。

【技术实现步骤摘要】

本专利技术涉及安卓的应用程序领域,具体涉及一种设备屏幕页面与子页面之间互相通信的方法及系统
技术介绍
安卓系统上的应用程序一般由各种页面及其中的子页面构成;通常,将显示在设备屏幕上的页面称之为Activity,将Activity上挂载的各种子页面称之为Fragment。一个Activity可以挂载多个Fragment(例如参见图1所示,一个应用的频道浏览页面拥有新闻、财经和体育频道3个子页面),Fragment的运行内容与Activity没有直接关系,即Fragment与Activity为独立运行的,Activity可以称之为Fragment的容器。因为安卓系统的面向对象特性,所以一个对象不能轻易访问另一个对象中的数据;因此,相对独立的频道浏览Activity无法轻易得知内部新闻Fragment加载了多少条新闻;新闻Fragment也无法轻易得知自己在频道浏览Activity排第几个位置。在某些特殊场景下,Activity和Fragment必须要互相通信交换数据,互相通信交换数据的方式一般为:通过自行定义的调用程序使得Activity和Fragment互相得知对方的位置、并进行相应的修改(更新或删除)。例如:参见图1所示,若频道浏览Activity想要命令新闻Fragment刷新列表,频道浏览Activity必须遍历内部已挂载的所有Fragment,
找到新闻Fragment,再调用新闻Fragment内部的函数,刷新列表。若新闻Fragment想要将其加载的新闻条数发送至频道浏览Activity、并让频道浏览Activity更新子页面标题为“新闻(5)”:Fragment首先需要调用系统函数找到频道浏览Activity、并得知自己在频道浏览Activity中排列的位置;然后调用频道浏览Activity内部的函数,更新子页面标题对应位置的文本。上述调用函数的程序均由开发者自行编写,若Activity和Fragment之间通信次数较少(即只在一两处位置调用),操作过程还比较容易。但是,若Activity和Fragment之间通信次数较少(即在多处位置调用),则需要用到多个调用程序,其操作过程比较冗余繁琐,不便于人们使用。
技术实现思路
针对现有技术中存在的缺陷,本专利技术解决的技术问题为:在Activity和Fragment之间进行相互通信时,精简调用过程,进而达到简化操作过程,增加开发效率的目的。为达到以上目的,本专利技术提供的设备屏幕页面与子页面之间互相通信的方法,该方法包括以下步骤:Activity向Fragment通信时:A01、Activity发送与Fragment通信的请求命令,与Fragment通信的请求命令中包括Fragment的tag、name和data;遍历Activity中挂载的所有Fragment,确定与tag对应的Fragment;A02、与tag对应的Fragment得知Activity发送的name和data;Fragment向Activity通信时:B01、Fragment发送与Activity通信的请求命令,与Activity通信的请求命令中包括Activity的name和data;根据name和data确
定当前Fragment需要通信的Activity;B02、Activity得知当前Fragment发送的name和data。在上述技术方案的基础上,步骤A01中所述遍历Activity中挂载的所有Fragment之后,还包括以下步骤:若未发现与tag对应的Fragment,则终止流程。在上述技术方案的基础上,步骤B01中所述根据name和data确定当前Fragment需要通信的Activity时,还包括以下步骤:若未发现需要通信的Activity,则终止流程。本专利技术提供的实现上述方法的设备屏幕页面与子页面之间互相通信的系统,该系统包括Activity端发送接口、Fragment端接收接口、Fragment端发送接口和Activity端接收接口;在Activity向Fragment通信时:Activity端发送接口用于:发送与Fragment通信的请求命令,与Fragment通信的请求命令中包括Fragment的tag、name和data;与tag对应的Fragment端接收接口用于:得知Activity发送的name和data;Fragment向Activity通信时:Fragment端发送接口用于:发送与Activity通信的请求命令,与Activity通信的请求命令中包括Activity的name和data;Activity端接收接口用于:得知当前Fragment发送的name和data。在上述技术方案的基础上,该系统还包括Fragment遍历模块,其用于:当Activity端发送接口发送请求命令后,遍历Activity中挂载的所有Fragment,确定与tag对应的Fragment。在上述技术方案的基础上,该系统还包括Activity查询模块,其
用于:当Fragment端发送接口发送请求命令后,根据name和data确定当前Fragment需要通信的Activity。与现有技术相比,本专利技术的优点在于:本专利技术的系统为Activity端和Fragment端各定义了发送和接收2种接口,定义接口的Activity端和Fragment端进行通信时,只需要发送通信请求命令,即可自动遍历Activity确定Fragment、或者自动确定Fragment的容器Activity。有鉴于此,与现有技术中需要多次调用系统函数的通信方法相比,本专利技术能够通过Activity端和Fragment端定义的4种接口(Activity端的发送接收2种,Fragment端的发送接收2种),即可完成Activity和Fragment之间的相互通信,其调用程序较少,显著的精简了调用过程,进而简化了操作过程,增加了开发效率,便于人们使用。附图说明图1为现有技术中包含多个Fragment的Activity的示意图。具体实施方式以下结合附图及实施例对本专利技术作进一步详细说明。本专利技术实施例中的设备屏幕页面与子页面之间互相通信的方法,包括以下步骤:Activity向Fragment通信时:A01、Activity发送与Fragment通信的请求命令,与Fragment通信的请求命令中包括Fragment的tag(标签)、name(通信命令名称)和data(通信命令参数)。自动遍历Activity中挂载的所有Fragment,确定与tag对应的Fragment(若未发现与tag对应的Fragment,则终止流程)。A02、与tag对应的Fragment得知Activity发送的name和data,实现消息传达。下面以具体应用程序的方式说明Activity向Fragment通信时的流程:Activity端发送:public void sendDataToFragment(String tag,String name,Object data);Fragment端接收:protected void onReceiveDataFromActivity(String name,Objec本文档来自技高网
...

【技术保护点】
一种设备屏幕页面与子页面之间互相通信的方法,其特征在于,该方法包括以下步骤:Activity向Fragment通信时:A01、Activity发送与Fragment通信的请求命令,与Fragment通信的请求命令中包括Fragment的tag、name和data;遍历Activity中挂载的所有Fragment,确定与tag对应的Fragment;A02、与tag对应的Fragment得知Activity发送的name和data;Fragment向Activity通信时:B01、Fragment发送与Activity通信的请求命令,与Activity通信的请求命令中包括Activity的name和data;根据name和data确定当前Fragment需要通信的Activity;B02、Activity得知当前Fragment发送的name和data。

【技术特征摘要】
1.一种设备屏幕页面与子页面之间互相通信的方法,其特征在于,该方法包括以下步骤:Activity向Fragment通信时:A01、Activity发送与Fragment通信的请求命令,与Fragment通信的请求命令中包括Fragment的tag、name和data;遍历Activity中挂载的所有Fragment,确定与tag对应的Fragment;A02、与tag对应的Fragment得知Activity发送的name和data;Fragment向Activity通信时:B01、Fragment发送与Activity通信的请求命令,与Activity通信的请求命令中包括Activity的name和data;根据name和data确定当前Fragment需要通信的Activity;B02、Activity得知当前Fragment发送的name和data。2.如权利要求1所述的设备屏幕页面与子页面之间互相通信的方法,其特征在于:步骤A01中所述遍历Activity中挂载的所有Fragment之后,还包括以下步骤:若未发现与tag对应的Fragment,则终止流程。3.如权利要求1所述的设备屏幕页面与子页面之间互相通信的方法,其特征在于:步骤B01中所述根据name和data确定当前Fragment需要通信的Activity时,还包括以下步骤:若未发现需要通信的Activity,则终止流程。4.一种实现权利要求1至3任...

【专利技术属性】
技术研发人员:霍启圣
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1