CN108363597A - 一种页面跳转方法及系统 - Google Patents
一种页面跳转方法及系统 Download PDFInfo
- Publication number
- CN108363597A CN108363597A CN201810002220.6A CN201810002220A CN108363597A CN 108363597 A CN108363597 A CN 108363597A CN 201810002220 A CN201810002220 A CN 201810002220A CN 108363597 A CN108363597 A CN 108363597A
- Authority
- CN
- China
- Prior art keywords
- page
- context
- image parameters
- startup
- parameter
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种页面跳转方法及系统,所述的方法包括:基于构建的页面启动器函数接收传入的参数,所述参数包括上下文context对象参数和启动页面参数集合;采用意图类Intent对象对所述启动页面参数集合进行封装,得到封装后的Intent对象;判断所述上下文context对象参数为页面上下文context对象参数或者非页面上下文context对象参数,根据判断结果以及根据Intent对象中的启动页面参数集合,采用相应的方法,实现页面元素到页面的跳转或者实现非页面元素到页面的跳转。本发明通过构建页面启动器函数,并根据传入的上下文context对象参数的类型,采取不同的方法来分别实现页面元素到页面的跳转以及非页面元素到页面的跳转。
Description
技术领域
本发明涉及页面跳转技术领域,更具体地,涉及一种页面跳转方法及系统。
背景技术
Android应用开发过程中通常会涉及到页面之间的跳转逻辑,传统的页面跳转是通过构建一个意图类对象Intent,然后通过调用该对象中的一系列方法来封装和存储一定的启动页面参数,最后调用startActivity来进行页面的启动。
传统方案中startActivity是基于页面的,可以实现从一个页面跳转到另一个页面,但是如果根据非页面中的元素来实现页面跳转时,由于元素不在页面内部,所以无法获取到该页面的上下文Context对象,进而无法通过调用startActivity来实现页面之间的跳转,也就是说传统方案的页面跳转不支持非页面元素跳转到页面的过程。
另外,在采用意图类Intent对象对启动页面参数进行封装时,是通过意图类Intent对象对启动页面参数进行直接封装,其封装过程比较繁琐,实施起来非常不方便。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的一种页面跳转方法及系统,克服了现有技术中的无法实现非页面元素到页面的跳转问题。
根据本发明的一个方面,提供了一种页面跳转方法,包括:
基于构建的页面启动器函数接收传入的参数,所述参数包括上下文context对象参数和启动页面参数集合;
采用意图类Intent对象对所述启动页面参数集合进行封装,得到封装后的Intent对象;
判断所述上下文context对象参数为页面上下文context对象参数或者非页面上下文context对象参数,根据判断结果以及封装后的所述Intent对象中的启动页面参数集合,采用相应的方法,实现页面元素到页面的跳转或者实现非页面元素到页面的跳转。
在上述技术方案的基础上,本发明还可以作如下改进。
进一步的,所述启动页面参数集合中包括可变数量的多个启动页面参数,每一个所述启动页面参数均为抽象类型。
进一步的,所述基于构建的页面启动器函数接收传入的参数之后还包括:
根据所述传入的参数,判断所述启动页面参数集合是否为空或者其长度是否为0,若所述启动页面参数集合为空或者其长度为0,则无需封装;
相应的,所述采用意图类Intent对象对所述启动页面参数集合进行封装,得到封装后的Intent对象具体包括:
若所述启动页面参数集合不为空且其长度大于0,则采用Intent对象对所述启动页面参数集合进行封装。
进一步的,所述若所述启动页面参数集合不为空且其长度大于0,则采用Intent对象对所述启动页面参数集合进行封装具体包括:
采用Intent构造函数实例化一个Intent对象,以及采用Bundle构造函数实例化一个bundle对象;
采用循环的方式遍历所述启动页面参数集合中的每一个启动页面参数,并采用键值对的方式将所有的启动页面参数存储于bundle对象中;
调用Intent对象中的setBundle方法将存储有启动页面参数的bundle对象存储于Intent对象中,完成对所有启动页面参数的封装。
进一步的,所述判断所述上下文context对象参数为页面上下文context对象参数或者非页面上下文context对象参数具体包括:
通过if(context instanceof act ivity)的方法判断所述上下文context对象参数是否为页面上下文context对象参数,若返回结果为1,表示该上下文context对象参数为页面上下文context对象参数,若返回结果为0,则表示该上下文context对象参数为非页面上下文context对象参数。
进一步的,所述根据判断结果以及所述Intent对象中的启动页面参数,并采用相应的方法实现页面元素到页面的跳转或者实现非页面元素到页面的跳转具体包括:
若判断出所述上下文context对象参数为页面上下文context对象参数,则调用启动页面方法实现页面启动;
若判断出所述上下文context对象参数为非页面上下文context对象参数,则开启一新的任务栈,在所述新的任务栈中,根据Intent对象中的启动页面参数集合实现页面启动。
进一步的,还包括:
当判断出所述上下文context对象参数为非页面上下文context对象参数,则对封装所述启动页面参数集合后的Intent对象设置标签;
根据Intent对象的标签,调用上下文context对象中的页面启动方法,开启一个新的任务栈,在所述新的任务栈中实现非页面元素到页面的跳转。
根据本发明的另一个方面,提供了一种页面跳转系统,包括:
接收模块,用于基于构建的页面启动器函数接收传入的参数,所述参数包括上下文context对象参数和启动页面参数集合;
封装模块,用于采用意图类Intent对象对所述启动页面参数集合进行封装,得到封装后的Intent对象;
判断模块,用于判断所述上下文context对象参数为页面上下文context对象参数或者非页面上下文context对象参数;
跳转模块,用于根据判断结果以及所述Intent对象中的启动页面参数,采用相应的方法,实现页面元素到页面的跳转或者实现非页面元素到页面的跳转。
根据本发明的再一个方面,提供了一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行页面跳转方法。
本发明提供的一种页面跳转方法及系统,通过构建页面启动器函数,并根据传入的上下文context对象参数的类型,采取不同的方法来分别实现页面元素到页面的跳转以及非页面元素到页面的跳转。
附图说明
图1为本发明一个实施例的页面跳转方法流程图;
图2为本发明一个实施例的页面跳转系统示意图;
图3为本发明一个实施例的页面跳转系统中封装模块的内部连接框图;
图4为本发明又一个实施例的页面跳转系统的整体连接框图;
图5为本发明再一个实施例的电子设备的连接框图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
参见图1,提供了本发明一个实施例的页面跳转方法,通过该方法不仅能够实现页面元素到页面的跳转,也能够实现非页面元素到页面的跳转。该方法包括:基于构建的页面启动器函数接收传入的参数,所述参数包括上下文context对象参数和启动页面参数集合;采用意图类Intent对象对所述启动页面参数集合进行封装,得到封装后的Intent对象;判断所述上下文context对象参数为页面上下文context对象参数或者非页面上下文context对象参数,根据判断结果以及封装后的所述Intent对象中的启动页面参数集合,采用相应的方法,实现页面元素到页面的跳转或者实现非页面元素到页面的跳转。
在页面跳转的过程中,需要根据一些启动页面参数来启动页面,比如,启动页面参数可以包括页面的旋转参数或者页面的显示参数,在页面启动时,按照页面启动参数来调整页面启动后的旋转角度或者显示方向等。在实现页面跳转的过程中,传统方案实现页面跳转的方法是构建一个意图类对象Intent,然后调用该对象中的方法来封装和存储启动页面参数,最后调用页面启动方法startActivity来实现页面的启动。其中,由于页面启动方法startActivity是基于页面的,因此只能实现页面元素到页面的跳转,对于非页面元素,由于元素不在页面内部,无法获取到需要跳转的页面的上下文context对象,进而也无法通过调用页面启动方法startActivity来实现非页面元素到页面的跳转。
在本实施例中,设计一个通用的页面启动器函数,当需要实现页面跳转时,向页面启动器函数中传入参数,其中,传入的参数包括页面启动的上下文context对象参数和启动页面参数集合。对于传入的启动页面参数集合,采用意图类Intent对象对启动页面参数集合中的所有的启动页面参数进行封装,得到封装后的Intent对象。根据传入参数中的上下文context对象参数的类型,具体为,上下文context对象参数可能为页面上下文context对象参数或者非页面上下文context对象参数,当传入的上下文context对象参数为页面上下文context对象参数时,表明需要实现的是页面元素到页面的跳转,若传入的上下文context对象参数为非页面上下文context对象参数,则表明需要实现的是非页面元素到页面的跳转。对于页面元素到页面的跳转和非页面元素到页面的跳转,在本实施例中,采取不同的方法来实现。
本实施例通过构建页面启动器函数,并根据传入的上下文context对象参数的类型,采取不同的方法来分别实现页面元素到页面的跳转以及非页面元素到页面的跳转。
在上述实施例的基础上,本发明的一个实施例中,所述启动页面参数集合中包括可变数量的多个启动页面参数,每一个所述启动页面参数均为抽象类型。其中,构建的通用的页面启动器函数具体为:Void dyStartAct ivi ty(Context context,Object…params),其中,页面启动函数的名称为dyStartActivi ty,context参数为页面启动的上下文context对象参数,context参数的类型可以为页面context对象参数,也可以为非页面context对象参数,该参数在页面启动的时候需要用到,后续会进行说明,在此不再进行说明。
本实施例对于启动页面参数的设计是比较独特的,启动页面参数类型是一个object类型的对象,object类型是一个抽象类型的数据接口,可以接收任意类型的参数。另外,params是一个启动页面参数集合,该启动页面参数集合中的启动页面参数的数量可变,可以接受0-n个启动页面参数的传递,n为大于1的整数。
本实施例中将启动页面参数的类型设计为object类型,且能够传递任意个数的参数,这样能够极大地提高启动页面参数的扩展性,能够适应于各种各样不同的应用场景。
在上述各实施例的基础上,本发明的另一个实施例中,所述基于构建的页面启动器函数接收传入的参数之后还包括:根据所述传入的参数,判断所述启动页面参数集合是否为空或者其长度是否为0,若所述启动页面参数集合为空或者其长度为0,则无需封装;相应的,所述采用意图类Intent对象对所述启动页面参数集合进行封装,得到封装后的Intent对象具体包括:若所述启动页面参数集合不为空且其长度大于0,则采用Intent对象对所述启动页面参数集合进行封装。具体的,构建了页面启动器函数后,若需要实现页面启动,只需要向页面启动器函数中传入参数,页面启动时需要根据启动页面参数进行页面的启动,那么对启动页面参数需要进行封装。在上述实施例中已经说明,启动页面参数是以集合的形成传入的,在进行封装之前,先判断启动页面参数集合是否为空或者集合的长度是否为0,如果启动页面参数集合为空或者集合的长度为0,则说明根本就不存在这个集合或者这个集合中没有任何的参数,此时不需要封装,表明启动页面的时候无需传递参数,可以采用默认方式直接对页面进行跳转启动。
若启动页面参数集合不为空且其长度大于0,表明集合中存在启动页面参数,此时需要将启动页面参数进行封装,为后续的页面启动提供支持。
在上述各实施例的基础上,本发明的一个实施例中,所述若所述启动页面参数集合不为空且其长度大于0,则采用Intent对象对所述启动页面参数集合进行封装具体包括:采用Intent构造函数实例化一个Intent对象,以及采用Bundle构造函数实例化一个bundle对象;采用循环的方式遍历所述启动页面参数集合中的每一个启动页面参数,并采用键值对的方式将所有的启动页面参数存储于bundle对象中;调用Intent对象中的setBundle方法将存储有启动页面参数的bundle对象存储于Intent对象中,完成对所有启动页面参数的封装。
具体的,对启动页面参数集合中的启动页面参数进行封装的具体过程为,为了能够对启动页面参数进行封装,首先通过Intent的构造函数来实例化得到Intent的一个实例Intent对象,再通过Bundle的构造函数来实例化得到一个实例bundle对象。其中,bundle对象可以理解为一个数据存储仓库,该数据存储仓库存放的是一系列的键值对信息。
对于启动页面参数集合中的多个启动页面参数,采用循环的方式遍历启动页面参数集合中的每一个启动页面参数,并采用键值对的方式将所有的启动页面参数存储于bundle对象中。具体过程为,通过循环的方式每次从params集合中取出一个参数,然后调用bundle对象中的putSerial izable(“param0”,params[0])来存储其中的第一条数据,按照同样的方法存储第N条启动页面参数数据,putSerial izable(“param(N-1)”,params[N-1]),N为大于等于1的整数。
本实施例在启动页面参数存储时使用putSerial izable函数,该函数是一个存储序列化对象的函数,也就是说可以直接对Object类型的对象数据进行直接存储。其次在存储参数的时候对参数的名称命名规则是param0…paramN的方式来进行统一命名的,即对所有的启动页面参数进行顺序排序,以便后续按照一定排列顺序的启动页面参数来启动页面。
将启动页面参数集合中的所有启动页面参数存储于bundle对象中后,再调用Intent对象中的setBundle方法将存储有启动页面参数的bundle对象存储于Intent对象中,完成对所有启动页面参数的封装。
本实施例构造了一个bundle对象,将所有的启动页面参数存储于bundle对象中,然后将整个bundle对象封装于Intent对象中,而不是将所有的启动页面参数直接封装于Intent对象中,Intent对象直接对众多的参数进行封装是非常复杂的过程,而bundle对象是一个数据存储仓库,对于数据的存储比较方便,因此,采用本实施例中的封装方法就解决了现有的参数的封装的复杂性。
在上述各实施例的基础上,本发明的一个实施例中,所述判断所述上下文context对象参数为页面上下文context对象参数或者非页面上下文context对象参数具体包括:通过if(context instanceofact ivity)的方法判断所述上下文context对象参数是否为页面上下文context对象参数,若返回结果为1,表示该上下文context对象参数为页面上下文context对象参数,若返回结果为0,则表示该上下文context对象参数为非页面上下文context对象参数。
由于在页面跳转的过程中,需要根据参数中的上下文context对象参数的类型来确定,在对传入参数中的上下文context对象参数的类型进行判断时,由于在Android系统中一个页面是一个Activity,因此可以通过if(context instanceof activity)的方法来判定传入的context对象参数是否是一个页面对象参数,若该函数的返回结果为1,表示该上下文context对象参数为页面上下文context对象参数,若返回结果为0,则表示该上下文context对象参数为非页面上下文context对象参数。
在上述各实施例的基础上,本发明的另一个实施例中,所述根据判断结果以及所述Intent对象中的启动页面参数,并采用相应的方法实现页面元素到页面的跳转或者实现非页面元素到页面的跳转具体包括:若判断出所述上下文context对象参数为页面上下文context对象参数,则调用启动页面方法实现页面启动;若判断出所述上下文context对象参数为非页面上下文context对象参数,则开启一新的任务栈,在所述新的任务栈中,根据Intent对象中的启动页面参数集合实现页面启动。
在具体进行页面跳转启动的过程中,若判断出其中的上下文context对象参数为页面上下文context对象参数,并且启动页面参数集合为空或者集合的长度为0,则调用context对象中的页面启动方法直接对页面进行启动,不需要任何的启动页面参数。
若判断出所述上下文context对象参数为页面上下文context对象参数,且所述启动页面参数集合不为空且其长度不为0,则调用页面上下文context对象中的启动页面方法startAct ivity(intent)来启动页面,其中的Intent参数即为上述封装了bundle对象的Intent对象,主要是根据Intent对象中的启动页面参数来实现页面的启动,实现页面元素到页面的跳转启动。
当判断出上下文context对象参数为非页面上下文context对象参数,则对封装启动页面参数集合后的Intent对象设置标签。后续根据Intent对象的标签,调用页面启动方法startActivi ty,开启一个新的任务栈,在新的任务栈中开启一个新的任务,实现非页面元素到页面的跳转。由于开启了新的任务,所以被启动的页面与已经启动的页面之间没有附属关系,也就达到了非页面元素来启动页面的目标。
本实施例通过对参数中的上下文context对象参数的类型来判断页面元素跳转到页面还是非页面元素跳转到页面,根据不同的跳转模式,采取不同的方式进行跳转,既能够实现现有的页面元素跳转到页面的功能,也能够实现非页面元素跳转到页面的功能。
参见图2,提供了本发明另一个实施例的页面跳转系统,包括接收模块21、封装模块22、判断模块23和跳转模块24。
接收模块21,用于基于构建的页面启动器函数接收传入的参数,所述参数包括上下文context对象参数和启动页面参数集合。
封装模块22,用于采用意图类Intent对象对所述启动页面参数集合进行封装,得到封装后的Intent对象。
判断模块23,用于判断所述上下文context对象参数为页面上下文context对象参数或者非页面上下文context对象参数;
跳转模块24,用于根据判断结果以及封装后的所述Intent对象中的启动页面参数,采用相应的方法,实现页面元素到页面的跳转或者实现非页面元素到页面的跳转。
参见图3,提供了本发明一个实施例的页面跳转系统,包括接收模块21、封装模块22、判断模块23、跳转模块24和标签设置模块25。
接收模块21,用于基于构建的页面启动器函数接收传入的参数,所述参数包括上下文context对象参数和启动页面参数集合。
封装模块22,用于采用意图类Intent对象对所述启动页面参数集合进行封装,得到封装后的Intent对象。
判断模块23,用于判断所述上下文context对象参数为页面上下文context对象参数或者非页面上下文context对象参数;
跳转模块24,用于根据判断结果以及封装后的所述Intent对象中的启动页面参数,采用相应的方法,实现页面元素到页面的跳转或者实现非页面元素到页面的跳转。
其中,封装模块22,具体用于当所述启动页面参数集合不为空且其长度大于0时,采用Intent对象对所述启动页面参数集合进行封装。
如图4所示,封装模块22具体包括实例化单元221和存储单元222,实例化单元221,用于采用Intent构造函数实例化一个Intent对象,以及采用Bundle构造函数实例化一个bundle对象;存储单元222,用于采用循环的方式遍历所述启动页面参数集合中的每一个启动页面参数,并采用键值对的方式将所有的启动页面参数存储于bundle对象中;还用于调用Intent对象中的setBundle方法将存储有启动页面参数的bundle对象存储于Intent对象中,完成对所有启动页面参数的封装。
判断模块23,具体用于通过if(context instanceof activity)的方法判断所述上下文context对象参数是否为页面上下文context对象参数。
跳转模块24,具体用于若判断模块23判断出所述上下文context对象参数为页面上下文context对象参数,则调用启动页面方法实现页面启动;还用于若判断模块23判断出所述上下文context对象参数为非页面上下文context对象参数,则开启一新的任务栈,在所述新的任务栈中,根据Intent对象中的启动页面参数集合实现页面启动。
跳转模块24,用于若判断模块23判断出所述上下文context对象参数为页面上下文context对象参数,则调用启动页面方法实现页面启动具体包括:
若判断模块23判断出所述上下文context对象参数为页面上下文context对象参数,且所述启动页面参数集合为空或者其长度为0,则调用页面启动方法直接启动页面;以及,
若判断模块23判断出所述上下文context对象参数为页面上下文context对象参数,且所述启动页面参数集合不为空且其长度不为0,则调用页面上下文context对象中的启动页面方法,并根据Intent对象中的启动页面参数集合实现页面启动。
标签设置模块25,用于当判断模块23判断出上下文context对象参数为非页面上下文context对象参数,则对封装所述启动页面参数集合后的Intent对象设置标签;相应的,跳转模块24,用于根据Intent对象的标签,调用页面启动方法,开启一个新的任务栈,在所述新的任务栈中实现非页面元素到页面的跳转。
参见图5,为本发明一种电子设备,包括:处理器(processor)501、存储器(memory)502和总线503;其中,所述处理器501和存储器502通过所述总线503完成相互间的通信。
所述处理器501用于调用所述存储器502中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:基于构建的页面启动器函数接收传入的参数,所述参数包括上下文context对象参数和启动页面参数集合;采用意图类Intent对象对所述启动页面参数集合进行封装,得到封装后的Intent对象;判断所述上下文context对象参数为页面上下文context对象参数或者非页面上下文context对象参数,根据判断结果以及所述Intent对象中的启动页面参数,采用相应的方法,实现页面元素到页面的跳转或者实现非页面元素到页面的跳转。
本发明公开一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,该计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述对应实施例所提供的页面跳转方法,例如包括:基于构建的页面启动器函数接收传入的参数,所述参数包括上下文context对象参数和启动页面参数集合;采用意图类Intent对象对所述启动页面参数集合进行封装,得到封装后的Intent对象;判断所述上下文context对象参数为页面上下文context对象参数或者非页面上下文context对象参数,根据判断结果以及所述Intent对象中的启动页面参数,采用相应的方法,实现页面元素到页面的跳转或者实现非页面元素到页面的跳转。
本发明还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述对应实施例所提供的页面跳转方法,例如包括:基于构建的页面启动器函数接收传入的参数,所述参数包括上下文context对象参数和启动页面参数集合;采用意图类Intent对象对所述启动页面参数集合进行封装,得到封装后的Intent对象;判断所述上下文context对象参数为页面上下文context对象参数或者非页面上下文context对象参数,根据判断结果以及所述Intent对象中的启动页面参数,采用相应的方法,实现页面元素到页面的跳转或者实现非页面元素到页面的跳转。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的页面跳转方法的设备等实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分方法。
本发明提供的一种页面跳转方法及系统,通过构建页面启动器函数,页面启动器函数可以接收任意类型、可变数量的启动页面参数,提高了启动页面参数的扩展性,能够适应不同的应用场景,并根据传入的上下文context对象参数的类型,采取不同的方法来分别实现页面元素到页面的跳转以及非页面元素到页面的跳转,克服了现有技术中无法实现非页面元素跳转到页面的问题。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种页面跳转方法,其特征在于,包括:
基于构建的页面启动器函数接收传入的参数,所述参数包括上下文context对象参数和启动页面参数集合;
采用意图类Intent对象对所述启动页面参数集合进行封装,得到封装后的Intent对象;
判断所述上下文context对象参数为页面上下文context对象参数或者非页面上下文context对象参数,根据判断结果以及封装后的所述Intent对象中的启动页面参数集合,采用相应的方法,实现页面元素到页面的跳转或者实现非页面元素到页面的跳转。
2.如权利要求1所述的页面跳转方法,其特征在于,所述启动页面参数集合中包括可变数量的多个启动页面参数,每一个所述启动页面参数均为抽象类型。
3.如权利要求1所述的页面跳转方法,其特征在于,所述基于构建的页面启动器函数接收传入的参数之后还包括:
根据所述传入的参数,判断所述启动页面参数集合是否为空或者其长度是否为0,若所述启动页面参数集合为空或者其长度为0,则无需封装;
相应的,所述采用意图类Intent对象对所述启动页面参数集合进行封装,得到封装后的Intent对象具体包括:
若所述启动页面参数集合不为空且其长度大于0,则采用Intent对象对所述启动页面参数集合进行封装。
4.如权利要求3所述的页面跳转方法,其特征在于,所述若所述启动页面参数集合不为空且其长度大于0,则采用Intent对象对所述启动页面参数集合进行封装具体包括:
采用Intent构造函数实例化一个Intent对象,以及采用Bundle构造函数实例化一个bundle对象;
采用循环的方式遍历所述启动页面参数集合中的每一个启动页面参数,并采用键值对的方式将所有的启动页面参数存储于bundle对象中;
调用Intent对象中的setBundle方法将存储有启动页面参数的bundle对象存储于Intent对象中,完成对所有启动页面参数的封装。
5.如权利要求1-4中任一项所述的页面跳转方法,其特征在于,所述判断所述上下文context对象参数为页面上下文context对象参数或者非页面上下文context对象参数具体包括:
通过if(context instanceof activity)的方法判断所述上下文context对象参数是否为页面上下文context对象参数,若返回结果为1,表示该上下文context对象参数为页面上下文context对象参数,若返回结果为0,则表示该上下文context对象参数为非页面上下文context对象参数。
6.如权利要求5所述的页面跳转方法,其特征在于,所述根据判断结果以及所述Intent对象中的启动页面参数,并采用相应的方法实现页面元素到页面的跳转或者实现非页面元素到页面的跳转具体包括:
若判断出所述上下文context对象参数为页面上下文context对象参数,则调用启动页面方法实现页面启动;
若判断出所述上下文context对象参数为非页面上下文context对象参数,则开启一新的任务栈,在所述新的任务栈中,根据Intent对象中的启动页面参数集合实现页面启动。
7.如权利要求6所述的页面跳转方法,其特征在于,还包括:
当判断出所述上下文context对象参数为非页面上下文context对象参数,则对封装所述启动页面参数集合后的Intent对象设置标签;
根据Intent对象的标签,调用上下文context对象中的页面启动方法,开启一个新的任务栈,在所述新的任务栈中实现非页面元素到页面的跳转。
8.一种页面跳转系统,其特征在于,包括:
接收模块,用于基于构建的页面启动器函数接收传入的参数,所述参数包括上下文context对象参数和启动页面参数集合;
封装模块,用于采用意图类Intent对象对所述启动页面参数集合进行封装,得到封装后的Intent对象;
判断模块,用于判断所述上下文context对象参数为页面上下文context对象参数或者非页面上下文context对象参数;
跳转模块,用于根据判断结果以及所述Intent对象中的启动页面参数,采用相应的方法,实现页面元素到页面的跳转或者实现非页面元素到页面的跳转。
9.如权利要求8所述的页面跳转系统,其特征在于,所述跳转模块具体用于:
若所述判断模块判断出所述上下文context对象参数为页面上下文context对象参数,则调用启动页面方法实现页面启动;
若所述判断模块判断出所述上下文context对象参数为非页面上下文context对象参数,则开启一新的任务栈,在所述新的任务栈中,根据Intent对象中的启动页面参数集合实现页面启动。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810002220.6A CN108363597A (zh) | 2018-01-02 | 2018-01-02 | 一种页面跳转方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810002220.6A CN108363597A (zh) | 2018-01-02 | 2018-01-02 | 一种页面跳转方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108363597A true CN108363597A (zh) | 2018-08-03 |
Family
ID=63011062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810002220.6A Pending CN108363597A (zh) | 2018-01-02 | 2018-01-02 | 一种页面跳转方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108363597A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110308951A (zh) * | 2019-06-28 | 2019-10-08 | Oppo广东移动通信有限公司 | 一种启动界面卡顿的处理方法及装置、设备、存储介质 |
CN110619100A (zh) * | 2019-06-18 | 2019-12-27 | 北京无限光场科技有限公司 | 用于获取数据的方法和装置 |
CN118503137A (zh) * | 2024-07-17 | 2024-08-16 | 深圳依时货拉拉科技有限公司 | 稳定性测试方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104793966A (zh) * | 2014-01-21 | 2015-07-22 | 中国科学院声学研究所 | 一种Android本地应用的显示加载方法及系统 |
US20150278355A1 (en) * | 2014-03-28 | 2015-10-01 | Microsoft Corporation | Temporal context aware query entity intent |
CN105354034A (zh) * | 2015-11-17 | 2016-02-24 | 贵阳朗玛信息技术股份有限公司 | 应用程序的页面跳转方法及装置 |
CN105975274A (zh) * | 2013-10-31 | 2016-09-28 | 青岛海信移动通信技术股份有限公司 | 一种应用于Android平台的显示窗口的方法和装置 |
CN107153498A (zh) * | 2016-03-30 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 一种页面处理方法、装置和智能终端 |
CN107515948A (zh) * | 2017-09-12 | 2017-12-26 | 武汉斗鱼网络科技有限公司 | 页面跳转方法、装置及可读存储介质 |
CN107526598A (zh) * | 2017-08-31 | 2017-12-29 | 武汉斗鱼网络科技有限公司 | 一种网络页面跳转控制方法及系统 |
-
2018
- 2018-01-02 CN CN201810002220.6A patent/CN108363597A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105975274A (zh) * | 2013-10-31 | 2016-09-28 | 青岛海信移动通信技术股份有限公司 | 一种应用于Android平台的显示窗口的方法和装置 |
CN104793966A (zh) * | 2014-01-21 | 2015-07-22 | 中国科学院声学研究所 | 一种Android本地应用的显示加载方法及系统 |
US20150278355A1 (en) * | 2014-03-28 | 2015-10-01 | Microsoft Corporation | Temporal context aware query entity intent |
CN105354034A (zh) * | 2015-11-17 | 2016-02-24 | 贵阳朗玛信息技术股份有限公司 | 应用程序的页面跳转方法及装置 |
CN107153498A (zh) * | 2016-03-30 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 一种页面处理方法、装置和智能终端 |
CN107526598A (zh) * | 2017-08-31 | 2017-12-29 | 武汉斗鱼网络科技有限公司 | 一种网络页面跳转控制方法及系统 |
CN107515948A (zh) * | 2017-09-12 | 2017-12-26 | 武汉斗鱼网络科技有限公司 | 页面跳转方法、装置及可读存储介质 |
Non-Patent Citations (3)
Title |
---|
CHENDROID: "Android Context简单用法", 《HTTPS://BLOG.CSDN.NET/FRIENDLYCHEN/ARTICLE/DETAILS/73472419?UTM_SOURCE=BLOGXGWZ8》 * |
GDALF: "Activity 跳转详解", 《HTTPS://BLOG.CSDN.NET/GDALF/ARTICLE/DETAILS/50994737》 * |
如果天空不死: "Android Bundle总结", 《HTTPS://WWW.CNBLOGS.COM/SKYWANG12345/ARCHIVE/2013/03/06/3165555.HTML》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110619100A (zh) * | 2019-06-18 | 2019-12-27 | 北京无限光场科技有限公司 | 用于获取数据的方法和装置 |
CN110308951A (zh) * | 2019-06-28 | 2019-10-08 | Oppo广东移动通信有限公司 | 一种启动界面卡顿的处理方法及装置、设备、存储介质 |
CN110308951B (zh) * | 2019-06-28 | 2022-07-19 | Oppo广东移动通信有限公司 | 一种启动界面卡顿的处理方法及装置、设备、存储介质 |
CN118503137A (zh) * | 2024-07-17 | 2024-08-16 | 深圳依时货拉拉科技有限公司 | 稳定性测试方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103176789B (zh) | 一种实现开放平台功能扩展的方法及系统 | |
CN110244977A (zh) | 定制化软件生成方法、系统、电子设备及存储介质 | |
CN105677302B (zh) | 一种应用程序模块化开发方法以及装置 | |
CN106096030B (zh) | 对浏览器运行进行优化的方法和装置 | |
CN109324791A (zh) | 金融自助终端业务流程开发方法、装置及终端设备 | |
CN108363597A (zh) | 一种页面跳转方法及系统 | |
CN108170740A (zh) | 数据迁移方法、系统和计算机可读存储介质 | |
CN105243407B (zh) | 读写智能卡的方法及装置 | |
CN106484509A (zh) | 一种弹窗的输出方法、装置及终端 | |
CN104281441B (zh) | 基于mvc的数据提取方法及装置 | |
WO2021031472A1 (zh) | 智能合约处理方法、装置、计算机设备及存储介质 | |
CN107329991B (zh) | 一种列表页访问和展示方法及其系统 | |
CN109189400A (zh) | 程序发布方法及装置、存储介质、处理器 | |
CN107203419A (zh) | 应用程序中的模块间调用方法、装置及系统 | |
CN106302442A (zh) | 一种基于Java语言的网络通讯数据包解析方法 | |
WO2017148278A1 (zh) | Fix协议的业务实现方法、装置及系统 | |
CN107391626A (zh) | 落地页的创建方法和装置 | |
CN109918203A (zh) | 接入服务器内存管理优化方法、接入服务器及通信系统 | |
CN107087217A (zh) | 视频直播中的界面交互方法及直播客户端 | |
CN108876619A (zh) | 基于区块链智能合约的处理方法、装置、设备和介质 | |
CN109240697A (zh) | 调用处理方法及装置、存储介质 | |
WO2018001025A1 (zh) | 激励报文产生控制方法、装置及逻辑检测设备和存储介质 | |
CN106873952A (zh) | 移动端网页开发的数据处理系统和方法、及应用装置 | |
CN110007915A (zh) | 一种自适应子控件的线性布局方法及装置 | |
CN103761126B (zh) | 应用程序的升级方法和装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180803 |
|
RJ01 | Rejection of invention patent application after publication |