CN105955832A - 一种设备屏幕页面与子页面之间互相通信的方法及系统 - Google Patents

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

Info

Publication number
CN105955832A
CN105955832A CN201610315911.2A CN201610315911A CN105955832A CN 105955832 A CN105955832 A CN 105955832A CN 201610315911 A CN201610315911 A CN 201610315911A CN 105955832 A CN105955832 A CN 105955832A
Authority
CN
China
Prior art keywords
activity
fragment
data
name
request command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610315911.2A
Other languages
English (en)
Other versions
CN105955832B (zh
Inventor
霍启圣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Gaohang Intellectual Property Operation Co ltd
Xiamen Zhonglian Century Co ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201610315911.2A priority Critical patent/CN105955832B/zh
Publication of CN105955832A publication Critical patent/CN105955832A/zh
Application granted granted Critical
Publication of CN105955832B publication Critical patent/CN105955832B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种设备屏幕页面与子页面之间互相通信的方法及系统,涉及安卓的应用程序领域。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之间进行相互通信时,能够精简调用过程,进而达到简化操作过程、增加开发效率的目的。

Description

一种设备屏幕页面与子页面之间互相通信的方法及系统
技术领域
本发明涉及安卓的应用程序领域,具体涉及一种设备屏幕页面与子页面之间互相通信的方法及系统。
背景技术
安卓系统上的应用程序一般由各种页面及其中的子页面构成;通常,将显示在设备屏幕上的页面称之为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,Objectdata);
Fragment端接收:
protected void onReceiveDataFromActivity(String name,Objectdata);
在Activity端执行命令sendDataToFragment,传入目标Fragment的tag、name和data,代码将自动寻找目标Fragment,自动调用Fragment里的onReceiveDataFromActivity回调。
由此可见,使用本发明的方法的Activity向Fragment通信时,开发者只需监听onReceiveDataFromActivity回调即可接受来自Activity的通信。
Fragment向Activity通信时:
B01、Fragment发送与Activity通信的请求命令,与Activity通信的请求命令中包括Activity的name和data。根据name和data自动确定当前Fragment需要通信的Activity(若未发现Activity,则终止流程)。
B02、Activity得知当前Fragment发送的name和data,实现消息传达。
下面以具体应用程序的方式说明Fragment向Activity通信时的流程:
Fragment端发送:
public void sendDataToActivity(String name,Object data);
Activity端接收:
protected void onReceiveDataFromFragment(String tag,Stringname,Object data);
在Fragment端执行命令sendDataToActivity,传入name和data,代码将自动寻找容器Activity,自动调用Activity里的onReceiveDataFromFragment回调。
由此可见,使用本发明的方法的Fragment向Activity通信时,开发者只需监听onReceiveDataFromFragment回调即可接受来自Fragment的通信。
本发明实施例中的实现上述方法的设备屏幕页面与子页面之间互相通信的系统,该系统包括Activity端发送接口、Fragment遍历模块、Fragment端接收接口、Fragment端发送接口、Activity查询模块和Activity端接收接口。
在Activity向Fragment通信时:
Activity端发送接口用于:发送与Fragment通信的请求命令,与Fragment通信的请求命令中包括Fragment的tag、name和data。
Fragment遍历模块用于:遍历Activity中挂载的所有Fragment,确定与tag对应的Fragment。
与tag对应的Fragment端接收接口用于:得知Activity发送的name和data。
下面以具体应用程序的方式说明本发明的设备屏幕页面与子页面之间互相通信的系统,在Activity向Fragment通信时的流程:
Activity端发送接口执行命令sendDataToFragment,传入目标Fragment的tag、name和data,Fragment遍历模块将自动寻找目标Fragment,目标Fragment端接收接口自动调用Fragment里的onReceiveDataFromActivity回调。
Fragment向Activity通信时:
Fragment端发送接口用于:发送与Activity通信的请求命令,与Activity通信的请求命令中包括Activity的name和data。
Activity查询模块用于:根据name和data确定当前Fragment需要通信的Activity。
Activity端接收接口用于:得知当前Fragment发送的name和data。
下面以具体应用程序的方式说明本发明实施例中的设备屏幕页面与子页面之间互相通信的系统,在Fragment向Activity通信时的流程:
Fragment端发送接口执行命令sendDataToActivity,传入name和data,Activity查询模块自动寻找容器Activity,Activity端接收接口调用Activity里的onReceiveDataFromFragment回调。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (6)

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任一项所述方法的设备屏幕页面与子页面之间互相通信的系统,其特征在于:该系统包括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。
5.如权利要求4所述的设备屏幕页面与子页面之间互相通信的系统,其特征在于:该系统还包括Fragment遍历模块,其用于:当Activity端发送接口发送请求命令后,遍历Activity中挂载的所有Fragment,确定与tag对应的Fragment。
6.如权利要求4所述的设备屏幕页面与子页面之间互相通信的系统,其特征在于:该系统还包括Activity查询模块,其用于:当Fragment端发送接口发送请求命令后,根据name和data确定当前Fragment需要通信的Activity。
CN201610315911.2A 2016-05-12 2016-05-12 一种设备屏幕页面与子页面之间互相通信的方法及系统 Active CN105955832B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610315911.2A CN105955832B (zh) 2016-05-12 2016-05-12 一种设备屏幕页面与子页面之间互相通信的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610315911.2A CN105955832B (zh) 2016-05-12 2016-05-12 一种设备屏幕页面与子页面之间互相通信的方法及系统

Publications (2)

Publication Number Publication Date
CN105955832A true CN105955832A (zh) 2016-09-21
CN105955832B CN105955832B (zh) 2019-06-21

Family

ID=56912739

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610315911.2A Active CN105955832B (zh) 2016-05-12 2016-05-12 一种设备屏幕页面与子页面之间互相通信的方法及系统

Country Status (1)

Country Link
CN (1) CN105955832B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019010928A1 (zh) * 2017-07-10 2019-01-17 武汉斗鱼网络科技有限公司 一种多Fragment之间的通信方法及系统
WO2019024522A1 (zh) * 2017-07-31 2019-02-07 武汉斗鱼网络科技有限公司 标题栏与弹框栏同步通信的方法、存储介质、设备及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140304717A1 (en) * 2011-06-10 2014-10-09 Castis Co., Ltd. Device and method for performing pre-linking activity per application according to android application execution request

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140304717A1 (en) * 2011-06-10 2014-10-09 Castis Co., Ltd. Device and method for performing pre-linking activity per application according to android application execution request

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
COOKQQ: ""如何在另一个类里面获得某个activity的实例"", 《HTTPS://WEB.ARCHIVE.ORG/WEB/20150918202914/HTTPS://WWW.OSCHINA.NET/QUESTION/200838_78926》 *
生命壹号: ""Android系列之Fragment(三)——Fragment和Activity之间的通信(含接口回调)"", 《HTTPS://WEB.ARCHIVE.ORG/WEB/20160502075209/HTTPS://WWW.CNBLOGS.COM/SMYHVAE/P/4000390.HTML》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019010928A1 (zh) * 2017-07-10 2019-01-17 武汉斗鱼网络科技有限公司 一种多Fragment之间的通信方法及系统
WO2019024522A1 (zh) * 2017-07-31 2019-02-07 武汉斗鱼网络科技有限公司 标题栏与弹框栏同步通信的方法、存储介质、设备及系统

Also Published As

Publication number Publication date
CN105955832B (zh) 2019-06-21

Similar Documents

Publication Publication Date Title
US20160012150A1 (en) System and method for main distribution network graph/model/data integration based on remote access and information interaction
CN105763619B (zh) 客户端与服务端进行通讯的方法及装置
US11431806B2 (en) Internet of things information system of multiple objects
WO2012152133A1 (zh) 一种实现传感器适配的方法和系统
CN106911782A (zh) 一种数据读取方法及装置
CN104852939B (zh) 一种部署能力接口的方法和系统
CN104185305A (zh) 一种带有优先级的应用连网方法及移动终端
CN111191164A (zh) 一种窗口显示控制方法和装置
CN108924030A (zh) 电子装置、动态配置消息展示方式的方法及存储介质
CN105955832A (zh) 一种设备屏幕页面与子页面之间互相通信的方法及系统
CN102957681A (zh) 嵌入式浏览器、智能家电设备及智能物联网系统
BR112021008216A2 (pt) implementação de pilha de núcleo de rede celular em infraestrutura em nuvem
CN108628864B (zh) 一种数据访问方法及数据管理装置
CN102053811A (zh) 一种拼接墙系统共享资源显示处理方法及其装置
CN104270496B (zh) 显示主叫方信息的方法及装置
CN108124009A (zh) 一种办公用手机远程控制办公软件系统及方法
CN103581119B (zh) 一种生产过程数据高速显示系统及方法
US20130260716A1 (en) Phone Number Encapsulation Using Token Based Framework
CN208569734U (zh) 智能冰箱与门禁设备的联动系统
WO2023045510A1 (zh) 语音通道建立方法、装置、电子设备及存储介质
CN105072026A (zh) 物联网网关通信系统
CN106295309A (zh) 一种通知信息的管理方法和设备
CN100401681C (zh) 一种配置业务框数据的实现方法
AU2018289027B2 (en) Systems and methods for secure network communication
CN105991450A (zh) Mac地址表更新方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230410

Address after: 361000 3F-B003, Zone C, Innovation Building, Software Park, Xiamen Torch High tech Zone, Xiamen, Fujian Province

Patentee after: Xiamen Zhonglian Century Co.,Ltd.

Address before: 510000 2414-2416 of the main building 371, five mountain road, Tianhe District, Guangzhou, Guangdong.

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Effective date of registration: 20230410

Address after: 510000 2414-2416 of the main building 371, five mountain road, Tianhe District, Guangzhou, Guangdong.

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right