CN107301344B - 一种解除应用启动限制的方法及终端 - Google Patents

一种解除应用启动限制的方法及终端 Download PDF

Info

Publication number
CN107301344B
CN107301344B CN201710396637.0A CN201710396637A CN107301344B CN 107301344 B CN107301344 B CN 107301344B CN 201710396637 A CN201710396637 A CN 201710396637A CN 107301344 B CN107301344 B CN 107301344B
Authority
CN
China
Prior art keywords
application
activity
starting
mode
specified
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
CN201710396637.0A
Other languages
English (en)
Other versions
CN107301344A (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.)
Shenzhen Microphone Holdings Co Ltd
Original Assignee
Shenzhen Jinli Communication Equipment 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 Shenzhen Jinli Communication Equipment Co Ltd filed Critical Shenzhen Jinli Communication Equipment Co Ltd
Priority to CN201710396637.0A priority Critical patent/CN107301344B/zh
Publication of CN107301344A publication Critical patent/CN107301344A/zh
Application granted granted Critical
Publication of CN107301344B publication Critical patent/CN107301344B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Telephone Function (AREA)

Abstract

本发明实施例提供一种解除应用启动限制的方法及终端,其中方法包括:接收用户输入的第一应用的启动指令;根据启动指令启动第一应用;判断第一应用是否触发了第二应用的启动;若是,则判断第一应用启动第二应用的方式是否为非Activity方式;若是,则判断第二应用中是否存在指定的Activity;若是,则通过第一应用启动第二应用中所述指定的Activity;通过第一应用查询所述第二应用是否处于启动状态;若是,则通过第一应用调用第二应用中非Activity类的服务。本发明实施例可以解决由于厂商修改***框架导致应用在非启动状态下,无法通过非Activity方式相互启动的问题,使得应用在启动时可以通过非Activity方式启动其他应用中用户想要启动的后台应用服务。

Description

一种解除应用启动限制的方法及终端
技术领域
本发明实施例属于计算机技术领域,尤其涉及一种解除应用启动限制的方法及终端。
背景技术
应用间的相互启动,是指当用户启动终端上的某一个应用程序时,该应用程序会通过绑定其他应用服务的方式去启动其他应用中的应用服务。目前,终端上的很多应用在启动时经常会在后台非法启动与其绑定其他应用服务,这样会导致***在后台运行了大量用户不期望使用的应用服务,严重影响了***的性能。为此,很多厂商都采取了措施,其中最为常见的措施是,针对应用间通过非Activity方式的相互启动作了限制,禁止应用间通过非Activity方式来相互启动,但是这样会导致用户想要启动的后台服务也被拦截,使得用户体验不高,其中非Activity方式是指通过非活动窗口启动应用的方式,Activity方式是指通过活动窗口启动应用的方式。
发明内容
本发明实施例提供一种解除应用启动限制的方法及终端,可以解决由于厂商修改***框架导致应用在非启动状态下,无法通过非Activity方式相互启动的问题。
本发明实施例一方面提供一种解除应用启动限制的方法,包括:
接收用户输入的第一应用的启动指令;
根据所述启动指令启动所述第一应用;
判断所述第一应用是否触发了第二应用的启动;
若触发了所述第二应用的启动,则判断所述第一应用启动所述第二应用的方式是否为非Activity方式;
若是非Activity方式,则判断所述第二应用中是否存在指定的Activity;
若存在所述指定的Activity,则通过所述第一应用启动所述第二应用中所述指定的Activity;
通过所述第一应用查询所述第二应用是否处于启动状态;
若所述第二应用处于启动状态,则通过所述第一应用调用所述第二应用中非Activity类的服务。
本发明实施例另一方面还提供一种终端,包括:
指令接收单元,用于接收用户输入的第一应用的启动指令;
第一启动单元,用于根据所述启动指令启动所述第一应用;
第一判断单元,用于判断所述第一应用是否触发了第二应用的启动;
第二判断单元,用于若触发了所述第二应用的启动,则判断所述第一应用启动所述第二应用的方式是否为非Activity方式;
第三判断单元,用于若是非Activity方式,则判断所述第二应用中是否存在指定的Activity;
第二启动单元,用于若存在所述指定的Activity,则通过所述第一应用启动所述第二应用中所述指定的Activity;
第一查询单元,用于通过所述第一应用查询所述第二应用是否处于启动状态;
服务调用单元,用于若所述第二应用处于启动状态,则通过所述第一应用调用所述第二应用中非Activity类的服务。
本发明实施例通过接收用户输入的第一应用的启动指令;根据所述启动指令启动第一应用;判断所述第一应用是否触发了第二应用的启动;若触发了第二应用的启动,则判断所述第一应用启动所述第二应用的方式是否为非Activity方式;若是非Activity方式,则判断所述第二应用中是否存在指定的Activity;若存在指定的Activity,则通过所述第一应用启动所述第二应用中所述指定的Activity;通过所述第一应用查询所述第二应用是否处于启动状态;若所述第二应用处于启动状态,则通过所述第一应用调用所述第二应用中非Activity类的服务,从而可以解决由于厂商修改***框架导致应用在非启动状态下,无法通过非Activity方式相互启动的问题,使得应用在启动时可以通过非Activity方式启动其他应用中用户想要启动的后台应用服务。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种解除应用启动限制的方法的示意流程图;
图2是本发明实施例二提供的一种解除应用启动限制的方法的示意流程图;
图3是本发明实施例三提供的一种解除应用启动限制的方法的示意流程图;
图4是本发明实施例四提供的一种终端的示意性框图;
图5是本发明实施例五提供的一种终端的示意性框图;
图6是本发明实施例六提供的一种终端的示意性框图;
图7是本发明实施例七提供的一种终端的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
具体实现中,本发明实施例中描述的终端包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,所述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
在接下来的讨论中,描述了包括显示器和触摸敏感表面的终端。然而,应当理解的是,终端可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。
终端支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、文字处理应用程序、网站创建应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄影机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
可以在终端上执行的各种应用程序可以使用诸如触摸敏感表面的至少一个公共物理用户接口设备。可以在应用程序之间和/或相应应用程序内调整和/或改变触摸敏感表面的一个或多个功能以及终端上显示的相应信息。这样,终端的公共物理架构(例如,触摸敏感表面)可以支持具有对用户而言直观且透明的用户界面的各种应用程序。
参见图1,是本发明实施例一提供一种解除应用启动限制的方法的示意流程图,如图1所示,该方法可包括以下步骤:
步骤S101,接收用户输入的第一应用的启动指令。
在本实施例中,所述第一应用可以为终端上安装的任一应用程序,所述终端屏幕的显示界面上显示有所述第一应用的应用图标,用户可以通过触摸所述应用图标来触发终端启动所述第一应用程序。
步骤S102,根据所述启动指令启动所述第一应用。
在本实施例中,当终端检测到用户在所述第一应用的应用图标上进行了相应的触摸操作,则可根据用户的触摸操作生成所述第一应用程序的启动指令,并将所述启动指令发送至所述第一应用,所述第一应用在接收到所述启动指令后,即可根据所述启动指令执行启动操作。
在本实施例中,还可以对触发终端生成所述第一应用的启动指令的触摸操作进行限定,例如:限定所述触摸操作为用户在第一应用的应用图标上的连续触摸的时间达到预设时间阈值;或者,限定所述触摸操作为用户在所述第一应用的应用图标上的触摸压力大于预设压力阈值。
步骤S103,判断所述第一应用是否触发了所述第二应用的启动,若触发了第二应用的启动,则进入到步骤S104;反之,则结束流程。
在本实施例中,所述第一应用触发第二应用的启动包括但不限于以下两种情况:一种情况是,用户在使用第一应用的过程中,手动通过第一应用来调用第二应用,触发第二应用的启动;另一种是,所述第一应用绑定有自启动的第二应用,当第一应用启动时,后台会自动通过第一应用来启动与其绑定的所述第二应用。
另外,在本实施例中,所述第一应用可同时绑定一个或者多个自启动的第二应用,终端可通过查询所述第一应用是否绑定有其他应用服务的方式来判断所述第一应用是否绑定有自启动的第二应用;若查询到所述第一应用绑定有其他应用服务,则说明所述第一应用绑定有自启动的第二应用;若查询到所述第一应用未绑定其他应用服务,则说明所述第一应用没有绑定自启动的第二应用。
步骤S104,判断所述第一应用启动所述第二应用的方式是否为非Activity方式,若是非Activity方式,则进入到步骤S105;若是Activity方式,则按照现有的启动方式启动第二应用。
在本实施例中,若所述第一应用没有绑定自启动的第二应用,那么所述第一应用在启动后则不会再触发其他应用的启动,因此,此时不做处理;相反,若第一应用绑定有自启动的第二应用,则说明第一应用在启动后会触发第二应用的启动,因此,进入本实施例提供的解除第二应用启动限制的流程,判断第一应用启动所述第二应用的方式是否为非Activity方式。
优选的,在本实施例中,所述判断所述第一应用启动所述第二应用的方式是否为非Activity方式具体包括:
判断所述第一应用启动所述第二应用所使用的函数中是否携带有“Activity”字样;
若未携带有“Activity”字样,则所述第一应用启动所述第二应用的方式为非Activity方式;
若携带有“Activity”字样,则所述第一应用启动所述第二应用的方式为Activity方式。
例如,在具体应用中,若第一应用启动其二应用所使用的函数为:startActivityForA(),其中A为第二应用的应用名,而该函数中包含有“Activity”字样,因此,其对应的启动方式为Activity启动方式;反之,若其函数中不包括“Activity”字样,则其对应的启动方式为非Activity方式。另外,需要说明的是,这里例举的识别第一应用启动第二应用的方式是否为非Activity方式的方法仅仅是本发明的一个较佳实现示例,并不用于限制本发明。
在本实施例中,由于现有技术中厂商仅对应用间非Activity方式的相互启动进行了限制,因此若所述第一应用启动所述第二应用的启动方式为Activity方式,则说明第二应用能够顺利启动,此时按照现有流程启动第二应用即可,无需进入本实施例提供的解除应用启动限制的流程;反之,若第一应用启动所述第二应用的启动方式为非Activity方式,则说明按照现有的启动流程无法顺利启动第二应用,因此进入到本实施例提供的解除应用启动限制的流程中的步骤S105。
步骤S105,判断所述第二应用中是否存在指定的Activity,若存在指定的Activity,则进入到步骤S106中;反之,结束流程。
在本实施例中,所述指定的Activity是用户预先写入第二应用的应用入口文件中的,其存储在用户指定的目标地址中,终端可通过查询目标地址是否存在,在判断所述第二应用中是否存在指定的Activity。具体的判断方式如下:
其中,若返回值为true,则说明所述第二应用中存在指定的Activity,此时进入到步骤S106中;若返回值为false,则说明所述第二应用中不存在指定的Activity,此时结束流程。
步骤S106,通过所述第一应用启动所述第二应用中所述指定的Activity。
在本实施例中,所述通过所述第一应用启动所述第二应用中指定的Activity具体包括:所述第一应用向所述第二应用发送启动所述指定的Activity的请求,所述第二应用在接收到所述请求后,调用所述指定的Activity的onCreate方法来启动所述指定的Activity。其具体的启动方式如下:
步骤S107,通过所述第一应用查询所述第二应用是否处于启动状态,若所述第二应用处于启动状态,则进入步骤S108;反之,返回步骤S106。
在本实施例中,所述第一应用在向所述第二应用发送启动所述指令的Activity的请求后,会每隔预设时间调用getRunningAppProcesses来查询一次所述第二应用的包名是否存在在processName里面,直至确定所述第二应用的包名存在在ProcessName里面,或者直至查询次数大于预设查询次数阈值。优选的,所述预设时间为100ms,所述预设查询次数阈值时20次,当然用户也可根据自身的需要自行设置所述预设时间和所述预设查询次数,这里仅为本发明例举的一较佳实现示例,并不用于限制本发明。若查询到所述第二应用的包名存在在ProcessName里面,则说明所述第二应用处于启动状态,此时进入到步骤S108;若查询达到预设查询次数阈值,所述ProcessName中仍然不存在第二应用的包名,则说明所述第二应用不处于启动状态,此时,返回到步骤S106。其中,查询所述第二应用是否处于启动状态的方式如下:
步骤S108,通过所述第一应用调用所述第二应用中非Activity类的服务。
在本实施例中,若所述第一应用查询到所述第二应用已经处于启动状态了,则可以访问或调用所述第二应用中的非Activity类的服务了,并可以将所述第二应用中非Activity类服务的调用结果提示给用户,这样便解除了厂商对应用间非Activity方式相互启动的限制。
以上可以看出,本实施例提供的一种解除应用启动限制的方法由于通过接收用户输入的第一应用的启动指令;根据所述启动指令启动第一应用;判断所述第一应用是否绑定有自启动的第二应用;若绑定有自启动的第二应用,则判断所述第一应用启动所述第二应用的方式是否为非Activity方式;若是非Activity方式,则判断所述第二应用中是否存在指定的Activity;若存在指定的Activity,则通过所述第一应用启动所述第二应用中所述指定的Activity;通过所述第一应用查询所述第二应用是否处于启动状态;若所述第二应用处于启动状态,则通过所述第一应用调用所述第二应用中非Activity类的服务,从而可以解决由于厂商修改***框架导致应用在非启动状态下,无法通过非Activity方式相互启动的问题,使得应用在启动时可以通过非Activity方式启动其他应用中用户想要启动的后台应用服务。
图2是本发明实施例二提供的一种解除应用启动限制的方法的示意流程图。参见图2所示,相对于上一实施例,本实施例提供的一种解除应用启动限制的方法在所述接收用户输入的第一应用的启动指令之前还包括:
步骤S201,在所述第二应用的AndroidManifest.xml应用入口文件中写入一个透明无标题的Activity,并将所述Activity命名为指定的Activity。
在本实施例中,写入到所述第二应用的应用入口文件中的指定的Activity主要是为了使第一应用在访问或调用第二应用的非Activity类组件之前先启动所述第二应用的Activity,把第二应用的进程启动,然后再执行非Activity方式调用第二应用,避免直接通过非Activity方式调用第二应用被厂商限制,导致第二应用无法成功接收到第一应用的请求。
步骤S202,在所述指定的Activity的onCreate方法中写入finish(),使所述指定的Activity在启动后调用所述finish()关闭自己。
在本实施例中,由于在指定的Activity的onCreate方法中写入了finish(),因此所述指定的Activity在被第一应用启动之后,会立即调用finish()来关闭自己,达到进来就退出的效果,这样可以达到避免占用***内存,影响***性能的效果。
需要说明的是,本实施例中的步骤S203~步骤S210的具体实现方式分别与上述实施例中步骤S101~步骤S108的实现方式完全相同,因此,在此不再赘述。
因此,可以看出,本实施例提供的一种解除应用启动限制的方法同样可以解决由于厂商修改***框架导致应用在非启动状态下,无法通过非Activity方式相互启动的问题,使得应用在启动时可以通过非Activity方式启动其他应用中用户想要启动的后台应用服务;而且相对于上一实施例,本实施例还能使所述指定的Activity实现即进即退的效果,避免其占用***内存,影响***性能,进一步提升了用户体验。
图3是本发明实施例三提供的一种解除应用启动限制的方法的示意流程图。参见图3所示,相对于上一实施例,本实施例提供的一种解除应用启动限制的方法在所述判断所述第一应用启动所述第二应用的方式是否为非Activity方式之前还包括:
步骤S306,通过所述第一应用查询终端中是否存在所述第二应用;若存在所述第二应用,则进入所述判断所述第一应用启动所述第二应用的方式是否为非Activity方式的步骤;反之,若不存在所述第二应用,则结束流程。
在本实施例中,通过在终端中增加以下代码来查询所述第二应用是否存在:
其中,如果getVersionName方法返回值为空字符串,则认为所述第二应用不存在,此时返回错误码给用户,结束流程;若getVersionName方法返回值不是空字符串,那么则说明所述第二应用存在,此时进入到所述判断所述第一应用启动所述第二应用的方式是否为非Activity方式的步骤,继续执行解除应用启动限制方法的流程。
优选的,相对于上一实施例,本实施例在所述判断所述第二应用中是否存在指定的Activity之前还包括:
步骤S308,通过所述第一应用查询当前***正在运行的进程,判断所述第二应用是否处于启动状态;若不处于启动状态,则进入所述判断所述第二应用中是否存在指定的Activity的步骤;若处于启动状态,则直接跳转至所述通过所述第一应用调用所述第二应用中非Activity类的服务的步骤。
在本实施例中,若第二应用处于启动状态,则说明此时第一应用可以顺利访问第二应用中非Activity类的组件,因此,此时无需进入本发明的解除应用启动限制的流程,所述第一应用可直接访问或调用所述第二应用中的任何组件;相反,若第二应用处于非启动状态,则此时若直接通过第一应用访问或调用第二应用的非Activity类的组件,则会受到***框架的限制,导致第二应用无法成功接收到第一应用的访问或者调用请求,因此,需要进入本发明实施例的解除应用启动限制的处理流程,通过指定的Activity将第二应用的进程拉起来后再访问或调用第二应用中的非Activity类的组件。本实施例中,判断第二应用是否处于启动状态的方式与图1所示实施例中步骤S107采用的方式相同,因此,在此不再赘述。
另外,需要说明的是本实施例中步骤S301~步骤S305、步骤S307以及步骤S309~步骤S311的实现方式由于分别与图2所示实施例中的步骤S201~步骤S210的实现方式相同,因此,在此不再赘述。
因此,可以看出,本实施例提供的一种解除应用启动限制的方法同样可以解决由于厂商修改***框架导致应用在非启动状态下,无法通过非Activity方式相互启动的问题,使得应用在启动时可以通过非Activity方式启动其他应用中用户想要启动的后台应用服务;而且相对于上一实施例,本实施例中增加了上述步骤S306和步骤S308,可以使得本申请提供的解除应用启动限制的方法更加可靠。
图4是本发明实施例四提供的一种终端的示意性框图,为了便于说明仅仅示出了与本实施例相关的部分。
参见图4所示,本实施例提供的一种终端100,包括:
指令接收单元11,用于接收用户输入的第一应用的启动指令;
第一启动单元12,用于根据所述启动指令启动所述第一应用;
第一判断单元13,用于判断所述第一应用是否触发了第二应用的启动;
第二判断单元14,用于若触发了所述第二应用的启动,则判断所述第一应用启动所述第二应用的方式是否为非Activity方式;
第三判断单元15,用于若是非Activity方式,则判断所述第二应用中是否存在指定的Activity;
第二启动单元16,用于若存在所述指定的Activity,则通过所述第一应用启动所述第二应用中所述指定的Activity;
第一查询单元17,用于通过所述第一应用查询所述第二应用是否处于启动状态;
服务调用单元18,用于若所述第二应用处于启动状态,则通过所述第一应用调用所述第二应用中非Activity类的服务。
优选的,所述第二判断单元14具体用于:
判断所述第一应用启动所述第二应用所使用的函数中是否携带有“Activity”字样;
若未携带有“Activity”字样,则所述第一应用启动所述第二应用的方式为非Activity方式;
若携带有“Activity”字样,则所述第一应用启动所述第二应用的方式为Activity方式。
优选的,参见图5所示,在另一实施例中,所述终端100还包括:
第一写入单元19,用于在第二应用的AndroidManifest.xml应用入口文件中写入一个透明无标题的Activity,并将所述Activity命名为指定的Activity;
第二写入单元20,用于在所述指定的Activity的onCreate方法中写入finish(),使所述指定的Activity在启动后调用所述finish()关闭自己。
优选的,参见图6所示,在另一实施例中,所述终端100,还包括:
第二查询单元21,用于通过所述第一应用查询终端中是否存在所述第二应用;
第一控制单元22,用于若存在所述第二应用,则控制所述第二控制单元判断所述第一应用启动所述第二应用的方式是否为非Activity方式。
优选的,所述终端100还包括:
第三查询单元23,用于通过所述第一应用查询当前***正在运行的进程,判断所述第二应用是否处于启动状态;
第二控制单元24,用于若不处于启动状态,则控制所述第三判断单元判断所述第二应用中是否存在指定的Activity;若处于启动状态,则控制所述服务调用单元通过所述第一应用调用所述第二应用中非Activity类的服务。
需要说明的是,本发明实施例提供的上述终端中的各个单元,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
因此,可以看出,本实施例提供的终端同样可以解决由于厂商修改***框架导致应用在非启动状态下,无法通过非Activity方式相互启动的问题,使得应用在启动时可以通过非Activity方式启动其他应用中用户想要启动的后台应用服务。
参见图7,是本发明实施例七提供的一种终端示意框图。如图7所示的本实施例中的终端可以包括:一个或多个处理器701;一个或多个输入设备702,一个或多个输出设备703和存储器704。上述处理器701、输入设备702、输出设备703和存储器704通过总线705连接。存储器702用于存储指令,处理器701用于执行存储器702存储的指令。其中,所述处理器701用于:
接收用户输入的第一应用的启动指令;
根据所述启动指令启动所述第一应用;
判断所述第一应用是否触发了第二应用的启动;
若触发了所述第二应用的启动,则判断所述第一应用启动所述第二应用的方式是否为非Activity方式;
若是非Activity方式,则判断所述第二应用中是否存在指定的Activity;
若存在所述指定的Activity,则通过所述第一应用启动所述第二应用中所述指定的Activity;
通过所述第一应用查询所述第二应用是否处于启动状态;
若所述第二应用处于启动状态,则通过所述第一应用调用所述第二应用中非Activity类的服务。
所述处理器701还用于:
在所述第二应用的AndroidManifest.xml应用入口文件中写入一个透明无标题的Activity,并将所述Activity命名为指定的Activity;
在所述指定的Activity的onCreate方法中写入finish(),使所述指定的Activity在启动后调用所述finish()关闭自己。
所述处理器701还用于:
通过所述第一应用查询终端中是否存在所述第二应用;
若存在所述第二应用,则进入所述判断所述第一应用启动所述第二应用的方式是否为非Activity方式的步骤。
所述处理器701还用于:
通过所述第一应用查询当前***正在运行的进程,判断所述第二应用是否处于启动状态;
若不处于启动状态,则进入所述判断所述第二应用中是否存在指定的Activity的步骤;
若处于启动状态,则直接跳转至所述通过所述第一应用调用所述第二应用中非Activity类的服务的步骤。
所述处理器701还用于:
判断所述第一应用启动所述第二应用所使用的函数中是否携带有“Activity”字样;
若未携带有“Activity”字样,则所述第一应用启动所述第二应用的方式为非Activity方式;
若携带有“Activity”字样,则所述第一应用启动所述第二应用的方式为Activity方式。
应当理解,在本发明实施例中,所称处理器701可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备702可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备703可以包括显示器(LCD等)、扬声器等。
该存储器704可以包括只读存储器和随机存取存储器,并向处理器701提供指令和数据。存储器704的一部分还可以包括非易失性随机存取存储器。例如,存储器704还可以存储设备类型的信息。
具体实现中,本发明实施例中所描述的处理器701、输入设备702、输出设备703可执行本发明实施例提供的方法的第一实施例和第二实施例中所描述的实现方式,也可执行本发明实施例所描述的终端的实现方式,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述终端和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例终端中的单元可以根据实际需要进行合并、划分和删减。
在本申请所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种解除应用启动限制的方法,其特征在于,包括:
接收用户输入的第一应用的启动指令;
根据所述启动指令启动所述第一应用;
判断所述第一应用是否触发了第二应用的启动;
若所述第一应用触发了所述第二应用的启动,则判断所述第一应用启动所述第二应用的方式是否为非Activity方式;
若是非Activity方式,则判断所述第二应用中是否存在指定的Activity;
若存在所述指定的Activity,则通过所述第一应用启动所述第二应用中所述指定的Activity;
通过所述第一应用查询所述第二应用是否处于启动状态;
若所述第二应用处于启动状态,则通过所述第一应用调用所述第二应用中非Activity类的服务。
2.如权利要求1所述的解除应用启动限制的方法,其特征在于,所述接收用户输入的第一应用的启动指令之前还包括:
在所述第二应用的AndroidManifest.xml应用入口文件中写入一个透明无标题的Activity,并将所述Activity命名为指定的Activity;
在所述指定的Activity的onCreate方法中写入finish(),使所述指定的Activity在启动后调用所述finish()关闭自己。
3.如权利要求1所述的解除应用启动限制的方法,其特征在于,所述判断所述第一应用启动所述第二应用的方式是否为非Activity方式之前还包括:
通过所述第一应用查询终端中是否存在所述第二应用;
若存在所述第二应用,则进入所述判断所述第一应用启动所述第二应用的方式是否为非Activity方式的步骤。
4.如权利要求1所述的解除应用启动限制的方法,其特征在于,所述判断所述第二应用中是否存在指定的Activity之前还包括:
通过所述第一应用查询当前***正在运行的进程,判断所述第二应用是否处于启动状态;
若不处于启动状态,则进入所述判断所述第二应用中是否存在指定的Activity的步骤;
若处于启动状态,则直接跳转至所述通过所述第一应用调用所述第二应用中非Activity类的服务的步骤。
5.如权利要求1所述的解除应用启动限制的方法,其特征在于,所述判断所述第一应用启动所述第二应用的方式是否为非Activity方式包括:
判断所述第一应用启动所述第二应用所使用的函数中是否携带有“Activity”字样;
若未携带有“Activity”字样,则所述第一应用启动所述第二应用的方式为非Activity方式;
若携带有“Activity”字样,则所述第一应用启动所述第二应用的方式为Activity方式。
6.一种终端,其特征在于,包括:
指令接收单元,用于接收用户输入的第一应用的启动指令;
第一启动单元,用于根据所述启动指令启动所述第一应用;
第一判断单元,用于判断所述第一应用是否触发了第二应用的启动;
第二判断单元,用于若触发了所述第二应用的启动,则判断所述第一应用启动所述第二应用的方式是否为非Activity方式;
第三判断单元,用于若是非Activity方式,则判断所述第二应用中是否存在指定的Activity;
第二启动单元,用于若存在所述指定的Activity,则通过所述第一应用启动所述第二应用中所述指定的Activity;
第一查询单元,用于通过所述第一应用查询所述第二应用是否处于启动状态;
服务调用单元,用于若所述第二应用处于启动状态,则通过所述第一应用调用所述第二应用中非Activity类的服务。
7.如权利要求6所述的终端,其特征在于,还包括:
第一写入单元,用于在所述第二应用的AndroidManifest.xml应用入口文件中写入一个透明无标题的Activity,并将所述Activity命名为指定的Activity;
第二写入单元,用于在所述指定的Activity的onCreate方法中写入finish(),使所述指定的Activity在启动后调用所述finish()关闭自己。
8.如权利要求6所述的终端,其特征在于,还包括:
第二查询单元,用于通过所述第一应用查询终端中是否存在所述第二应用;
第一控制单元,用于若存在所述第二应用,则控制第二控制单元判断所述第一应用启动所述第二应用的方式是否为非Activity方式。
9.如权利要求6所述的终端,其特征在于,还包括:
第三查询单元,用于通过所述第一应用查询当前***正在运行的进程,判断所述第二应用是否处于启动状态;
第二控制单元,用于若不处于启动状态,则控制所述第三判断单元判断所述第二应用中是否存在指定的Activity;若处于启动状态,则控制所述服务调用单元通过所述第一应用调用所述第二应用中非Activity类的服务。
10.如权利要求6所述的终端,其特征在于,所述第二判断单元具体用于:
判断所述第一应用启动所述第二应用所使用的函数中是否携带有“Activity”字样;
若未携带有“Activity”字样,则所述第一应用启动所述第二应用的方式为非Activity方式;
若携带有“Activity”字样,则所述第一应用启动所述第二应用的方式为Activity方式。
CN201710396637.0A 2017-05-27 2017-05-27 一种解除应用启动限制的方法及终端 Active CN107301344B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710396637.0A CN107301344B (zh) 2017-05-27 2017-05-27 一种解除应用启动限制的方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710396637.0A CN107301344B (zh) 2017-05-27 2017-05-27 一种解除应用启动限制的方法及终端

Publications (2)

Publication Number Publication Date
CN107301344A CN107301344A (zh) 2017-10-27
CN107301344B true CN107301344B (zh) 2019-10-22

Family

ID=60137375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710396637.0A Active CN107301344B (zh) 2017-05-27 2017-05-27 一种解除应用启动限制的方法及终端

Country Status (1)

Country Link
CN (1) CN107301344B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126322A (zh) * 2016-06-14 2016-11-16 深圳市万普拉斯科技有限公司 应用启动控制方法及装置
CN106528206A (zh) * 2016-10-12 2017-03-22 北京奇虎科技有限公司 应用的启动控制方法、装置和加固应用安装包的装置
CN106557320A (zh) * 2013-10-31 2017-04-05 青岛海信移动通信技术股份有限公司 一种应用于Android平台的启动活动的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106557320A (zh) * 2013-10-31 2017-04-05 青岛海信移动通信技术股份有限公司 一种应用于Android平台的启动活动的方法和装置
CN106126322A (zh) * 2016-06-14 2016-11-16 深圳市万普拉斯科技有限公司 应用启动控制方法及装置
CN106528206A (zh) * 2016-10-12 2017-03-22 北京奇虎科技有限公司 应用的启动控制方法、装置和加固应用安装包的装置

Also Published As

Publication number Publication date
CN107301344A (zh) 2017-10-27

Similar Documents

Publication Publication Date Title
US11955124B2 (en) Electronic device for processing user speech and operating method therefor
KR102164428B1 (ko) 선택 가능한 그래픽 요소를 통해 자동화된 에이전트를 사용하여 대화를 초기화
JP5930236B2 (ja) ウェブアプリケーションアーキテクチャ
US8650481B1 (en) Stable and secure use of content scripts in browser extensions
US9367214B2 (en) Wireless communication device having deterministic control of foreground access of the user interface
CN107390969B (zh) 一种控制悬浮窗的方法及终端
WO2015169216A1 (en) Method and apparatus of preloading browser game on client
EP2704406A1 (en) Tempoarily unulocking of a mobile terminal
WO2015100933A1 (zh) 一种实现多操作***的数据处理方法及终端设备
CN107087018B (zh) 一种运行Web应用程序的方法及终端
CN107783803A (zh) 智能终端的***优化方法、装置、存储介质及智能终端
US20180196584A1 (en) Execution of multiple applications on a device
EP3044666A1 (en) Wireless communication device having deterministic control of foreground access of the user interface
CN107844341A (zh) 进程启动的管控方法、装置及存储介质和移动终端
CN114327087A (zh) 输入事件处理方法、装置、电子设备和存储介质
US8266635B2 (en) Browser-based user interface and control architecture with priority attributes
CN108563476B (zh) 应用程序运行方法、装置、存储介质及电子设备
CN107301344B (zh) 一种解除应用启动限制的方法及终端
CN107015874B (zh) 数据传输控制方法、装置及终端
CN111026542A (zh) 一种应用程序的覆盖图标的显示方法和装置
CN107463303A (zh) 一种防误触方法及终端
WO2010070528A1 (en) Method of and apparatus for emulating input
WO2021068112A1 (zh) 触摸事件的处理方法、装置、移动终端及存储介质
US9753741B2 (en) Remote inking
WO2020057202A1 (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210224

Address after: 518057 Desai Science and Technology Building, 9789 Shennan Avenue, Yuehai Street, Nanshan District, Shenzhen City, Guangdong Province, 17th Floor (15th Floor of Natural Floor) 1702-1703

Patentee after: Shenzhen Microphone Holdings Co.,Ltd.

Address before: 518040 21 floor, east block, Times Technology Building, 7028 Shennan Road, Futian District, Shenzhen, Guangdong.

Patentee before: DONGGUAN GOLDEX COMMUNICATION TECHNOLOGY Co.,Ltd.