CN107368377B - 一种Android应用程序中网络请求处理方法及装置 - Google Patents

一种Android应用程序中网络请求处理方法及装置 Download PDF

Info

Publication number
CN107368377B
CN107368377B CN201710527220.3A CN201710527220A CN107368377B CN 107368377 B CN107368377 B CN 107368377B CN 201710527220 A CN201710527220 A CN 201710527220A CN 107368377 B CN107368377 B CN 107368377B
Authority
CN
China
Prior art keywords
network request
data
message
message class
main thread
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.)
Active
Application number
CN201710527220.3A
Other languages
English (en)
Other versions
CN107368377A (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.)
Wuhan Douyu Network Technology 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 CN201710527220.3A priority Critical patent/CN107368377B/zh
Publication of CN107368377A publication Critical patent/CN107368377A/zh
Application granted granted Critical
Publication of CN107368377B publication Critical patent/CN107368377B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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
    • G06F9/546Message passing systems or structures, e.g. queues

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)
  • Telephone Function (AREA)

Abstract

本发明提供的一种Android应用程序中网络请求处理方法及装置,其中所述方法包括:S1,将网络请求返回状态和数据封装至消息类中,且通过消息处理器将所述消息类发送至主线程;S2,通过更新界面接口将所述主线程的消息类中的信息传递至用户界面层。本发明通过接口耦合降低了网络请求与页面更新之间的耦合关系,同时使得所有的页面更新都有相同的逻辑接口,保证了更新用户界面结构的统一性,方便后期对程序的维护。

Description

一种Android应用程序中网络请求处理方法及装置
技术领域
本发明涉及计算机技术领域,更具体地,涉及一种Android应用程序中网络请求处理方法及装置。
背景技术
应用程序是指为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面。应用程序通常又被分为两部分:图形用户接口(GUI)和引擎(Engien),它与应用软件的概念不同。应用软件指使用的目的分类,可以是单一程序或其他从属组件的集合,例如Microsoft Office、OpenOffice等。应用程序指单一可执行文件或单一程序,例如Word、Photoshop等。
在软件开发过程中通常使用网络来获取数据,且将通过网络获取到的数据展示在屏幕上,整个数据获取和展示的衔接流通常都是由软件开发人员自己来设计和维护。传统的网络请求过程中,发送一个网络请求后,该网络请求通常会有如下两种返回数据:网络请求返回成功,且返回相应的数据;或者,网络请求返回失败,且返回失败码,根据不同的失败码能够定位网络请求失败的具体原因。然后开发人员根据返回的数据对UI进行更新。
这种人为地直接更新UI的方式是一种强耦合关系,这样会导致UI的更新没有统一的规范协议,不同的页面更新方式可能会各有不同,从而导致后期页面的更新逻辑难以维护。
发明内容
针对上述的技术问题,本发明提供一种Android应用程序中网络请求处理方法及装置。
第一方面,本发明提供一种Android应用程序中网络请求处理方法,包括:S1,将网络请求返回状态和数据封装至消息类中,且通过消息处理器将所述消息类发送至主线程;S2,通过更新界面接口将所述主线程的消息类中的网络请求返回状态和数据传递至用户界面层。
其中,在所述S1前还包括:将网络请求返回状态分为网络请求成功和网络请求失败,且所述网络请求成功对应有第一网络请求成功回调函数,所述网络请求失败对应有第一网络请求失败回调函数;利用所述第一网络请求成功回调函数和所述第一网络请求失败回调函数分别获取网络请求成功和失败时网络请求返回状态和数据。
其中,在所述S2后还包括:隐藏用户界面中已展示的页面,并根据传递至所述用户界面层的网络请求返回状态和数据呈现待展示的页面。
其中,所述将网络请求返回状态和数据封装至消息类中的步骤进一步包括:定义承载网络请求返回状态的第一哈希映射,承载网络请求成功时的数据的第二哈希映射,承载网络请求失败时的错误码的第三哈希映射,以及承载网络请求失败时的错误信息的第四哈希映射;
将所述第一哈希映射、第二哈希映射、第三哈希映射和第四哈希映射组成一个列表集合,并通过消息类中的setdate方法将所述列表集合存储至所述消息类。
其中,所述通过消息处理器将所述消息类发送至主线程的步骤进一步包括:通过消息处理器中的发送消息方法将所述消息类发送至主线程中的处理消息函数。
其中,所述更新界面接口包括第二网络请求成功回调函数和第二网络请求失败回调函数;利用所述第二网络请求成功回调函数和所述第二网络请求失败回调函数分别将网络请求成功和失败时所述主线程的消息类中的网络请求返回状态和数据传递至用户界面层。
其中,所述通过更新界面接口将所述主线程的消息类中的网络请求返回状态和数据传递至用户界面层的步骤进一步包括:
主线程中的处理消息函数将所述消息类中的网络请求返回状态和数据解耦;
通过更新界面接口将所述解耦后的网络请求返回状态和数据传递至用户界面层。
第二方面,本发明提供一种Android应用程序中网络请求处理装置,包括:封装发送模块,用于将网络请求返回状态和数据封装至消息类中,且通过消息处理器将所述消息类发送至主线程;传递模块,用于通过更新用户界面接口将所述主线程的消息类中的网络请求返回状态和数据传递至用户界面层。
第三方面,本发明提供一种Android应用程序中网络请求处理设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中,
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述的方法。
第四方面,本发明提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述的方法。
本发明提供的一种Android应用程序中网络请求处理方法及装置,通过将网络请求返回状态和数据封装至消息类中,且通过消息处理器将所述消息类发送至主线程,从而可以在主线程中获取到网络请求返回的信息;然后通过更新界面接口将所述主线程的消息类中的信息传递至用户界面层,从而可以根据传递至用户界面层的网络请求返回状态和数据更新页面,且通过接口耦合降低了网络请求与UI更新之间的耦合关系,同时使得所有的页面更新都有相同的逻辑接口,保证了更新用户界面结构的统一性,方便后期对程序的维护。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的Android应用程序中网络请求处理方法的流程图;
图2为本发明实施例提供的Android应用程序中网络请求处理装置的结构框图;
图3为本发明实施例提供的Android应用程序中网络请求处理设备的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的Android应用程序中网络请求处理方法的流程图,如图1所示,该方法包括:S1,将网络请求返回状态和数据封装至消息类中,且通过消息处理器将所述消息类发送至主线程;S2,通过更新界面接口将所述主线程的消息类中的网络请求返回状态和数据传递至用户界面层。
其中,封装即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
其中,消息处理器为handler,是Android系统中提供的一个专门用于主线程和子线程通信的工具类。
其中,当一个程序启动时,就有一个进程被操作系统(OS)创建,与此同时一个线程也立刻运行,该线程通常叫做程序的主线程(Main Thread),因为它是程序开始时就执行的,如果你需要再创建线程,那么创建的线程就是这个主线程的子线程。每个进程至少都有一个主线程,在Winform中,应该就是创建GUI的线程。主线程的重要性体现在两方面:一方面,是产生其他子线程的线程;另一方面,通常它必须最后完成执行比如执行各种关闭动作。
其中,用户界面(User Interface,简称UI,亦称使用者界面)是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。用户界面是介于用户与硬件之间彼此交互沟通而设计的相关软件,目的在于使得用户能够方便有效率地去操作硬件以达成双向之交互,完成所希望借助硬件完成之工作,用户界面定义广泛,包含了人机交互与图形用户接口,凡参与人类与机械的信息交流的领域都存在着用户界面。
在开发过程中,通常发送网络请求等耗时的业务逻辑放在子线程中进行,但是UI的展现等业务逻辑放在主线程中进行。也就是说,UI和网络请求不在同一个线程内,所以不能在网络请求的子线程中直接对UI进行更新操作。为了能够操作UI线程中的业务逻辑,需要将网络线程中的状态转变到UI线程中来。
具体地,在对网络请求进行处理时,首先将网络请求返回状态和数据封装至消息类中,其中,消息类为message类;然后通过Android系统中的消息处理器handler将该message类发送至主线程中,这样就可以在主线程中得到网络请求返回状态和数据。再通过更新界面接口将主线程message类中的信息传递至用户界面层,其中,更新界面接口为UpdateUI接口;用户界面层为UI层,即控制UI业务的逻辑层,这样就可以根据传递至UI层的网络请求返回状态和数据更新页面。且通过接口耦合可以降低网络请求与UI之间的耦合关系,同时使得所有的页面更新都有相同的逻辑接口,方便后期程序的维护。
在本发明实施例中,通过将网络请求返回状态和数据封装至消息类中,且通过消息处理器将所述消息类发送至主线程,从而可以在主线程中获取到网络请求返回的信息;然后通过更新界面接口将所述主线程消息类中的信息传递至用户界面层,从而可以根据传递至用户界面层的网络请求返回状态和数据更新页面,且通过接口耦合降低了网络请求与UI更新之间的耦合关系,同时使得所有的页面更新都有相同的逻辑接口,保证了更新用户界面结构的统一性,方便后期对程序的维护。
在上述实施例的基础上,在所述S1前还包括:将网络请求返回状态分为网络请求成功和网络请求失败,且所述网络请求成功对应有第一网络请求成功回调函数,所述网络请求失败对应有第一网络请求失败回调函数;利用所述第一网络请求成功回调函数和所述第一网络请求失败回调函数分别获取网络请求成功和失败时网络请求返回状态和数据。
具体地,在将网络请求返回状态和数据封装至message类中之前,还包括将网络请求返回状态进行设计和封装,即将网络请求返回状态分为网络请求成功和网络请求失败。且网络请求成功对应有网络请求成功回调函数,该网络请求成功回调函数用于接收服务器根据成功的网络请求返回的数据,例如,网络请求成功回调函数为onSuccess(Stringjson),但并不局限于此。其中该网络请求成功回调函数的的参数部分是String类型的(字符串类型),参数的名称是json用于接收服务器返回的json数据。
网络请求失败对应有网络请求失败回调函数,该网络请求失败回调函数用于接收服务器根据失败的网络请求返回的失败码和失败原因信息,例如,网络请求失败回调函数为onError(String code,String message),但并不局限于此。该网络请求失败回调函数总共有两个参数,这两个参数分别是:失败码及与每个失败码对应的失败原因信息,字符串类型的message则是失败原因信息,方便后续维护人员查看具体的失败原因。
然后将封装为两大部分的网络请求状态和数据封装至message类中,且通过消息处理器handler将该message类发送至主线程,以及通过UpdateUI接口将主线程message类中的信息传递至UI层,这样就可以根据传递至UI层的网络请求返回状态和数据更新页面。
在本发明实施例中,通过将网络请求返回状态分为网络请求成功和网络请求失败两部分,且该两部分都有与之对应的回调函数,能够完整的描述网络请求返回的所有状态,为后续的逻辑实现奠定基础。
在上述各实施例的基础上,在所述S2后还包括:隐藏用户界面中已展示的页面,并根据传递至所述用户界面的网络请求返回状态和数据呈现待展示的页面。
具体地,在通过更新界面接口(即UpdateUI接口)将主线程message类中的信息传递至UI层之后,需要在用户界面根据传递至UI层的网络请求返回状态和数据呈现待展示的页面,例如,网络请求失败,就需要展示网络请求失败返回的与失败码对应的失败信息页面;或者,网络请求成功,就需要展示网络请求成功返回的数据信息页面。由于网络页面的状态有很多种,有各种失败页面和数据页面,如果控制不当很容易造成其他失败页面覆盖在当前待展示的页面之上,从而引起bug。因此,在根据传递至UI层的网络请求返回状态和数据呈现待展示的页面之前,将用户界面中已展示的页面全部隐藏掉,然后再根据网络请求返回状态和数据呈现待展示的页面,从而得到需要呈现的页面信息。
在本发明实施例中,通过将用户界面中已展示的页面全部隐藏,然后再根据传递至用UI层的网络请求返回状态和数据呈现待展示的页面,能够有效的避免在展示当前页面时,之前的页面仍然覆盖在其上,提高了页面展示的准确性,同时降低了bug出现的几率。
在上述各实施例的基础上,所述将网络请求返回状态和数据封装至消息类中的步骤进一步包括:定义承载网络请求返回状态的第一哈希映射,承载网络请求成功时的数据的第二哈希映射,承载网络请求失败时的错误码的第三哈希映射,以及承载网络请求失败时的错误信息的第四哈希映射;将所述第一哈希映射、第二哈希映射、第三哈希映射和第四哈希映射组成一个列表集合,并通过消息类中的setdate方法将所述列表集合封装至所述消息类中。
其中,哈希映射是基于哈希表的Map接口的实现。此实现提供所有可选的映射操作,并允许使用null值和null键。(除了非同步和允许使用null之外,HashMap类与Hashtable大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get和put)提供稳定的性能。迭代collection视图所需的时间与HashMap实例的“容量”(桶的数量)及其大小(键-值映射关系数)成比例。
具体地,在将网络请求返回状态和数据封装至message类时,首先定义承载网络请求返回状态的第一哈希映射,由于网络请求返回状态共有2种类型,所以定义一组Hashmap对象(键值对key-value)来承载网络请求返回状态。为了方便获知网络请求返回状态是成功还是失败,故定义一个hashmap对象,即第一哈希映射,其key是statue,value有2种情况,若value是1,则表示网络请求返回状态为成功;若value是2,则表示网络请求返回状态为失败。
除了描述网络请求返回状态以外还需要描述状态以外的额外信息,如果网络请求返回状态为成功,即statue是1,此时需要将网络请求成功返回的json数据也封装到message类中,因此需要再定义一个hashmap对象,即,第二哈希映射,该hashmap对象中的键是数据格式类型json,值是相应的网络数据。
如果网络请求返回状态为失败,即statue是2,此时需要将网络请求失败返回的失败码和失败信息也封装到message类中,因此需要定义2个hashmap对象,即第三哈希映射和第四哈希映射,第三哈希映射用于存储失败码,第四哈希映射用于存储与失败码对应的失败信息。
然后将这四个hashmap对象组成一个列表集合,即list集合,并通过message类中的setdate方法将该list集合存储到message类中,再通过消息处理器handler将message类从子线程发送至主线程。
在本发明实施中,通过对网络请求返回状态及数据均定义相应的哈希映射,且通过消息类中的setdate方法将这些哈希映射组成的列表集合存储至消息类,实现了将网络请求返回状态和数据封装至消息类,为将子线程中的网络请求返回状态和数据发送到主线程中提供基础。
在上述各实施例的基础上,所述通过消息处理器将所述消息类发送至主线程的步骤进一步包括:通过消息处理器中的发送消息方法将所述消息类发送至主线程中的处理消息函数。
具体地,在将网络请求返回状态和数据封装至message类后,则通过消息处理器handler将该message类发送至主线程,主线程中为了能够接收子线程中的消息,需要在主线程中复写处理消息函数,即handlermessage函数。也就是说,消息处理器handler中的发送消息方法(即,sendmessage方法)将该message类发送至主线程中的handlermessage函数。然后在handlerMessage函数中来处理和接受子线程的消息。当消息处理器handler通过sendMessage方法发送一条消息后,系统会将该消息存储到handler的消息队列中然后将该消息从消息队列中取出来发送到主线程的handlerMessage函数中,这样就可以在主线程中得到相应的消息了。
在本发明实施例中,通过消息处理器中的发送消息方法将所述消息类发送至主线程中的处理消息函数,实现了将子线程中的网络请求返回状态和数据发送至主线程的处理消息函数中,进而可以在主线程中获取到网络请求返回状态和数据。
在上述各实施例的基础上,所述更新用户界面接口包括第二网络请求成功回调函数和第二网络请求失败回调函数;利用所述第二网络请求成功回调函数和所述第二网络请求失败回调函数分别将网络请求成功和失败时所述主线程消息类中的网络请求返回状态和数据传递至用户界面层。
具体地,在将子线程中的网络请求返回状态和数据发送至主线程后,则通过更新界面接口将发送至主线程的网络请求返回状态和数据传递至用户界面层,由于更新界面接口(即,UpdateUI接口)包括第二网络请求成功回调函数和第二网络请求失败回调函数,且这两个函数与第一网络请求成功回调函数及第一网络请求失败回调函数的设计完全一致。例如,第二网络请求成功回调函数为Public void onSuccess(String json),第二网络请求失败回调函数为public void onError(String code,String message),但并不局限于此。
利用函数Public void onSuccess(String json)和函数public void onError(String code,String message),分别将网络请求成功和失败时所述主线程消息类中的网络请求返回状态和数据传递至用户界面层,从而使得从子线程发送至主线程的网络请求返回状态和数据能够透传至用户界面层,即该步骤不对消息做任何处理仅仅透传消息。并且由于使用接口耦合关系降低了网络请求和UI之间的耦合关系,同时还能够统一页面更新的回调函数。
在上述各实施例的基础上,所述通过更新界面接口将所述主线程消息类中的网络请求返回状态和数据传递至用户界面层的步骤进一步包括:主线程中的处理消息函数将所述消息类中的网络请求返回状态和数据解耦;通过更新界面接口将所述解耦后的网络请求返回状态和数据传递至用户界面层。
具体地,在将子线程中的网络请求返回状态和数据发送至主线程后,主线程中的处理消息函数将message类中的网络请求返回状态和数据进行解耦,然后再通过与网络请求返回状态设计一致的更新界面接口,将解耦后的网络请求返回状态和数据透传至用户界面层,以使用户界面层根据网络请求返回状态和数据呈现待展示的页面。且在呈现待展示的页面之前,将当前用户界面中已展示的页面全部隐藏掉,然后再根据透传至UI层的网络请求返回状态和数据呈现待展示的页面,这样保证了页面显示的准确性,降低了bug出现的几率。
图2为本发明实施例提供的Android应用程序中网络请求处理装置,如图2所示,该装置包括:封装发送模块201和传递模块202;封装发送模块201用于将网络请求返回状态和数据封装至消息类中,且通过消息处理器将所述消息类发送至主线程;传递模块202用于通过更新界面接口将所述主线程的消息类中的网络请求返回状态和数据传递至用户界面层。
具体地,在对网络请求进行处理时,首先封装发送模块201将网络请求返回状态和数据封装至message类中;然后封装发送模块201通过Android系统中的消息处理器handler将该message类发送至主线程中,这样就可以在主线程中得到网络请求返回的信息。传递模块202再通过更新界面接口(即UpdateUI接口)将主线程message类中的信息传递至用户界面层,这样就可以根据传递至UI层的网络请求返回状态和数据更新页面。且通过接口耦合可以降低网络请求与UI之间的耦合关系,同时使得所有的页面更新都有相同的逻辑接口,方便后期程序的维护。
在本发明实施例中,通过封装发送模块将网络请求返回状态和数据封装至消息类中,且通过消息处理器将所述消息类发送至主线程,从而可以在主线程中获取到网络请求返回的信息;然后传递模块再通过更新界面接口将所述主线程的消息类中的信息传递至用户界面层,从而可以根据传递至用户界面层的网络请求返回状态和数据更新页面,且通过接口耦合降低了网络请求与UI更新之间的耦合关系,同时使得所有的页面更新都有相同的逻辑接口,保证了更新用户界面结构的统一性,方便后期对程序的维护。
图3为本发明实施例提供的Android应用程序中礼物面板的优化设备的结构框图,如图3所示,该设备包括:处理器(processor)301、存储器(memory)302和总线303;
其中,所述处理器301和存储器302通过所述总线303完成相互间的通信;
所述处理器301用于调用所述存储器302中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:将网络请求返回状态和数据封装至消息类中,且通过消息处理器将所述消息类发送至主线程;通过更新界面接口将所述主线程的消息类中的网络请求返回状态和数据传递至用户界面层。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:将网络请求返回状态和数据封装至消息类中,且通过消息处理器将所述消息类发送至主线程;通过更新界面接口将所述主线程的消息类中的网络请求返回状态和数据传递至用户界面层。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种Android应用程序中网络请求处理方法,其特征在于,包括:
S1,将网络请求返回状态和数据封装至消息类中,且通过消息处理器将所述消息类发送至主线程;
S2,通过更新界面接口将所述主线程的消息类中的网络请求返回状态和数据传递至用户界面层;
所述将网络请求返回状态和数据封装至消息类中的步骤进一步包括:
定义承载网络请求返回状态的第一哈希映射,承载网络请求成功时的数据的第二哈希映射,承载网络请求失败时的错误码的第三哈希映射,以及承载网络请求失败时的错误信息的第四哈希映射;
将所述第一哈希映射、第二哈希映射、第三哈希映射和第四哈希映射组成一个列表集合,并通过消息类中的setdate方法将所述列表集合存储至所述消息类。
2.根据权利要求1所述的方法,其特征在于,在所述S1前还包括:
将网络请求返回状态分为网络请求成功和网络请求失败,且所述网络请求成功对应有第一网络请求成功回调函数,所述网络请求失败对应有第一网络请求失败回调函数;
利用所述第一网络请求成功回调函数和所述第一网络请求失败回调函数分别获取网络请求成功和失败时网络请求返回状态和数据。
3.根据权利要求1所述的方法,其特征在于,在所述S2后还包括:
隐藏用户界面中已展示的页面,并根据传递至所述用户界面层的网络请求返回状态和数据呈现待展示的页面。
4.根据权利要求1所述的方法,其特征在于,所述通过消息处理器将所述消息类发送至主线程的步骤进一步包括:
通过消息处理器中的发送消息方法将所述消息类发送至主线程中的处理消息函数。
5.根据权利要求4所述的方法,其特征在于,所述更新界面接口包括第二网络请求成功回调函数和第二网络请求失败回调函数;
利用所述第二网络请求成功回调函数和所述第二网络请求失败回调函数分别将网络请求成功和失败时所述主线程的消息类中的网络请求返回状态和数据传递至用户界面层。
6.根据权利要求5所述的方法,其特征在于,所述通过更新界面接口将所述主线程的消息类中的网络请求返回状态和数据传递至用户界面层的步骤进一步包括:
主线程中的处理消息函数将所述消息类中的网络请求返回状态和数据解耦;
通过更新界面接口将所述解耦后的网络请求返回状态和数据传递至用户界面层。
7.一种Android应用程序中网络请求处理装置,其特征在于,包括:
封装发送模块,用于将网络请求返回状态和数据封装至消息类中,且通过消息处理器将所述消息类发送至主线程;
传递模块,用于通过更新用户界面接口将所述主线程的消息类中的网络请求返回状态和数据传递至用户界面层;
所述将网络请求返回状态和数据封装至消息类中的步骤进一步包括:
定义承载网络请求返回状态的第一哈希映射,承载网络请求成功时的数据的第二哈希映射,承载网络请求失败时的错误码的第三哈希映射,以及承载网络请求失败时的错误信息的第四哈希映射;
将所述第一哈希映射、第二哈希映射、第三哈希映射和第四哈希映射组成一个列表集合,并通过消息类中的setdate方法将所述列表集合存储至所述消息类。
8.一种Android应用程序中网络请求处理设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中,
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至6任一所述的方法。
9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至6任一所述的方法。
CN201710527220.3A 2017-06-30 2017-06-30 一种Android应用程序中网络请求处理方法及装置 Active CN107368377B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710527220.3A CN107368377B (zh) 2017-06-30 2017-06-30 一种Android应用程序中网络请求处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710527220.3A CN107368377B (zh) 2017-06-30 2017-06-30 一种Android应用程序中网络请求处理方法及装置

Publications (2)

Publication Number Publication Date
CN107368377A CN107368377A (zh) 2017-11-21
CN107368377B true CN107368377B (zh) 2020-03-17

Family

ID=60306299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710527220.3A Active CN107368377B (zh) 2017-06-30 2017-06-30 一种Android应用程序中网络请求处理方法及装置

Country Status (1)

Country Link
CN (1) CN107368377B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634573A (zh) * 2018-12-18 2019-04-16 宁夏隆基宁光仪表股份有限公司 Android操作系统App开发方法、装置及介质
CN112214234A (zh) * 2020-10-24 2021-01-12 鹰信科技有限公司 基于java的ui更新方法、系统及其存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301443A (zh) * 2014-10-09 2015-01-21 百度在线网络技术(北京)有限公司 一种在web页面上调用端能力接口的方法和系统
CN105553775A (zh) * 2015-12-24 2016-05-04 珠海市君天电子科技有限公司 一种测试系统中信息的获取方法、装置及测试系统
US9389930B2 (en) * 2006-04-05 2016-07-12 International Business Machines Corporation System and method of providing inter-application communications
CN105847319A (zh) * 2016-02-22 2016-08-10 乐视移动智能信息技术(北京)有限公司 一种移动终端网络请求方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8763009B2 (en) * 2010-04-17 2014-06-24 Code Systems Corporation Method of hosting a first application in a second application

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9389930B2 (en) * 2006-04-05 2016-07-12 International Business Machines Corporation System and method of providing inter-application communications
CN104301443A (zh) * 2014-10-09 2015-01-21 百度在线网络技术(北京)有限公司 一种在web页面上调用端能力接口的方法和系统
CN105553775A (zh) * 2015-12-24 2016-05-04 珠海市君天电子科技有限公司 一种测试系统中信息的获取方法、装置及测试系统
CN105847319A (zh) * 2016-02-22 2016-08-10 乐视移动智能信息技术(北京)有限公司 一种移动终端网络请求方法及系统

Also Published As

Publication number Publication date
CN107368377A (zh) 2017-11-21

Similar Documents

Publication Publication Date Title
US10015264B2 (en) Generalized proxy architecture to provide remote access to an application framework
US8856805B2 (en) Virtual channel for embedded process communication
CN110716748B (zh) 业务处理方法、装置、计算机可读介质及电子设备
US7769698B2 (en) Navigation through components
US10528406B2 (en) Protocol extensibility for an application object framework
US20060248145A1 (en) System and method for providing various levels of reliable messaging between a client and a server
WO2002033545A2 (en) Pluggable instantiable distributed objects
US10747588B2 (en) Method for updating instance-based message maps using metadata
US11595299B2 (en) System and method of suppressing inbound payload to an integration flow of an orchestration based application integration
CN112199164A (zh) 一种保证容器镜像一致性的方法
CN111143451A (zh) 用于分层架构设计的ssm框架设计方法
US10498862B2 (en) Bi-directional communication for an application object framework
CN115210689A (zh) 用于在微服务环境中使用的反应式消息传递客户端的系统和方法
CN107368377B (zh) 一种Android应用程序中网络请求处理方法及装置
WO2022226205A1 (en) System and method for packaging standalone application modules into re-usable application and infrastructure resources
US12019647B2 (en) Accessing application services from forms
US10503572B2 (en) Hybrid remote controller
CN116954824A (zh) 一种支持多种扩展现实 (xr) 技术规范应用程序与2d应用程序多进程混合运行的运行时系统、数据交互方法、设备及介质
US20240070151A1 (en) Database systems and client-side query transformation methods
US20240070149A1 (en) Database systems and client-side data synchronization methods
CN116432624A (zh) 一种微服务api文档生成方法、装置、设备、存储介质
EP4102361A2 (en) Method and apparatus for managing functions of a query engine
CN109597611A (zh) 前端数据流控制组件开发系统、方法、设备及存储介质
CN113110920B (zh) 区块链系统的运行方法、装置、设备和存储介质
CN103246517A (zh) 一种智能客户端程序调用webservice实现数据库事务持续化的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant