CN112202960A - 避免智能终端开机时出现无响应的方法及装置、智能终端 - Google Patents
避免智能终端开机时出现无响应的方法及装置、智能终端 Download PDFInfo
- Publication number
- CN112202960A CN112202960A CN202011031269.8A CN202011031269A CN112202960A CN 112202960 A CN112202960 A CN 112202960A CN 202011031269 A CN202011031269 A CN 202011031269A CN 112202960 A CN112202960 A CN 112202960A
- Authority
- CN
- China
- Prior art keywords
- intelligent terminal
- input event
- desktop program
- timer
- started
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种避免智能终端开机时出现无响应的方法及装置、智能终端,包括:若智能终端在其桌面程序的第一次启动完成之前收到外界产生的输入事件,则丢弃所述桌面程序的第一次启动完成之前收到的输入事件。本发明可以避免在智能终端上电开机过程中产生ANR问题,改善用户体验。
Description
技术领域
本发明涉及智能终端技术领域,尤指一种避免智能终端开机时出现无响应的方法及装置、智能终端。
背景技术
目前,移动终端中普遍采用安卓(Android)操作系统作为操作平台。在Android平台上,如果移动终端有一段时间响应不够灵敏,系统会向用户显示一个无响应(ANR:Application Not Responding)对话框,此时用户可以选择等待,也可以选择“强制关闭”。
移动终端上电开机后,有一个操作系统的启动过程。在启动过程中往往有很多初始化工作要做,特别是低端设备,此时很容易出现性能瓶颈,中央处理器(CPU)使用率达到90%以上,开机启动时间也较长,如果这时候用户随意滑动屏幕,就容易因为CPU处理不过来而出现无响应对话框。
当终端的home桌面在界面上出现时,则启动完成。在启动完成前,其实屏幕上并没有可操作界面(大部分只是开机logo(开机图标))。若只是在logo上滑动几下,屏幕就出现无响应对话框会给用户带来不好的体验。
除了移动终端有上述现象,在采用Android操作系统的智能电视上也可能有类似现象。智能电视开机后有一段较长时间的启动过程,若在启动过程中因用户频繁的按键输入出现ANR对话框,会影响用户的使用体验。
发明内容
本发明的目的之一是为了克服现有技术中存在的不足,提供一种避免智能终端开机时出现无响应的方法及装置、智能终端。
本发明提供的技术方案如下:
一种避免智能终端开机时出现无响应的方法,包括:
若智能终端在其桌面程序的第一次启动完成之前收到外界产生的输入事件,则丢弃所述桌面程序的第一次启动完成之前收到的输入事件。
进一步地,还包括:
若所述智能终端在其桌面程序的第一次启动完成之后收到外界产生的输入事件,则处理所述桌面程序的第一次启动完成之后收到的输入事件。
进一步地,在所述桌面程序的第一次启动完成之前,包括:
判断所述桌面程序的启动是否是第一次启动;
当所述桌面程序的启动为第一次启动时,启动一计时器。
进一步地,所述的若智能终端在其桌面程序的第一次启动完成之前收到外界产生的输入事件,则丢弃所述桌面程序的第一次启动完成之前收到的输入事件,包括:
若在所述计时器超时之前收到外界产生的输入事件,则丢弃所述计时器超时之前收到的输入事件;
所述的若所述智能终端在其桌面程序的第一次启动完成之后收到外界产生的输入事件,则处理所述桌面程序的第一次启动完成之后收到的输入事件,包括:
若在所述计时器超时之后收到外界产生的输入事件,则处理所述计时器超时之后收到的输入事件。
进一步地,所述输入事件包括按键、触屏产生的输入事件。
进一步地,所述智能终端采用安卓操作系统。
本发明还提供一种避免智能终端开机时出现无响应的装置,包括:
输入事件处理模块,用于若智能终端在其桌面程序的第一次启动完成之前收到外界产生的输入事件,则丢弃所述桌面程序的第一次启动完成之前收到的输入事件;若所述智能终端在其桌面程序的第一次启动完成之后收到外界产生的输入事件,则处理所述桌面程序的第一次启动完成之后收到的输入事件。
进一步地,还包括:
判断模块,用于判断所述桌面程序的启动是否是第一次启动;
计时模块,用于当所述桌面程序的启动为第一次启动时,启动一计时器。
进一步地,所述输入事件处理模块,进一步用于若在所述计时器超时之前收到外界产生的输入事件,则丢弃所述计时器超时之前收到的输入事件;若在所述计时器超时之后收到外界产生的输入事件,则处理所述计时器超时之后收到的输入事件。
本发明还提供一种智能终端,包括:
存储器,用于存储计算机程序;
处理器,用于运行所述计算机程序时实现前述的避免智能终端开机时出现无响应的方法。
通过本发明提供的避免智能终端开机时出现无响应的方法及装置、智能终端,至少能够带来以下有益效果:
本发明通过屏蔽系统启动完成之前的所有按键、触屏等输入事件,完全解决了低端的智能终端开机时容易发生的无响应问题,改善了用户体验。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种避免智能终端开机时出现无响应的方法及装置、智能终端的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明的一种避免智能终端开机时出现无响应的方法的一个实施例的流程图;
图2是本发明的一种避免智能终端开机时出现无响应的方法的另一个实施例的流程图;
图3是本发明的一种避免智能终端开机时出现无响应的装置的一个实施例的结构示意图;
图4是本发明的一种避免智能终端开机时出现无响应的装置的另一个实施例的结构示意图;
图5是本发明的一种智能终端的一个实施例的结构示意图。
附图标号说明:
100.判断模块,200.计时模块,300.输入事件处理模块,20.智能终端,30.存储器,40.处理器,50.计算机程序。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘制了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
本发明的一个实施例,如图1所示,一种避免智能终端开机时出现无响应的方法,包括:
步骤S300智能终端判断在其桌面程序的第一次启动完成之前是否收到外界产生的输入事件;
步骤S310若在桌面程序的第一次启动完成之前收到外界产生的输入事件,则丢弃所述桌面程序的第一次启动完成之前收到的输入事件;
步骤S400智能终端判断在其桌面程序的第一次启动完成之后是否收到外界产生的输入事件;
步骤S410若在桌面程序的第一次启动完成之后收到外界产生的输入事件,则处理所述桌面程序的第一次启动完成之后收到的输入事件。
具体地,智能终端是指配有操作系统的设备,比如智能手机、智能手表/手环、智能电视等。
智能终端上电后,有一个操作系统的启动过程。以采用安卓操作系统的智能终端的启动为例,首先加载引导程序BootLoader到RAM(Ramdom Access Memory,随机存取存储器)中,并执行BootLoader程序启动Linux Kernel(内核);然后启动init(初始化)进程,做一些初始化工作,包括挂载文件系统、创建工作目录以及启动系统服务进程Zygote等;在Zygote中会进一步去启动系统服务进程(system_server进程),然后在system_server进程中启动AMS(Activity Manager Service,活动管理服务)、WMS(Window Manager Service,窗口管理服务)、PMS(Package Manager Service,包管理服务)等系统服务,等这些服务启动之后,AMS中会打开Launcher应用(即安卓系统的桌面程序)的Home Activity,最终看到智能终端的"桌面"。对于智能手表而言,可能是看到“时钟表盘”出现。对于智能手机,可能是看到“各个应用程序的快捷图标及名称”出现。至此,智能终端的启动完成。
若智能终端采用高速CPU等,整个启动过程的时间会比较短,用户在启动过程中进行按键、滑屏的概率较低;但对于低端设备,启动时间相对较长,若用户在启动过程中对智能终端进行按键、触屏等,由于系统尚未完成启动,在现有技术中容易发生对用户的行为较长时间无响应,出现ANR对话框的问题。
智能终端上电后所进行的桌面程序的启动为桌面程序的第一次启动。在第一次启动之后,在上电状态,有可能发生桌面程序退出,后又启动的现象,此时的启动为第二次启动。
以安卓操作系统为例,第一次启动相当于冷启动,系统需要为桌面程序分配一个新进程。第二次启动相当于热启动,是从已有的进程启动,所以启动时间更短。比如,智能终端上电开机显示“桌面”,完成了桌面程序的第一次启动;假设智能终端开启了省电功能,过一段时间未收到用户的操作,则自动进入黑屏状态,桌面程序退出,但进程仍保留;后通过按键触发,重新看到智能终端的“桌面”,如此完成了桌面程序的第二次启动。通常热启动比冷启动快。
至桌面程序的第一次启动完成,整个操作系统的启动才算完成;在操作系统的启动完成后,系统才有能力对外界产生的输入事件进行正常的处理。因此有必要屏蔽桌面程序的第一次启动完成前收到的输入事件,进而屏蔽不必要的ANR对话框,避免ANR对话框影响用户的使用体验。
输入事件包括按键、触屏操作产生的输入事件。按键操作包括在智能终端上直接按键或对智能终端遥控按键等操作。触屏操作包括在屏幕滑动、点击屏幕等操作。
若在桌面程序的第一次启动完成之前收到外界产生的输入事件,则丢弃该输入事件,避免用户对桌面程序的第一次启动的干扰,同时避免ANR对话框的出现。
若在桌面程序的第一次启动完成之后收到外界产生的输入事件,则处理该输入事件,将输入事件正常传递给对应的上层程序处理,避免用户认为系统无响应进入死机状态而影响用户的体验。
可选地,当桌面程序启动完成时,发送一个完成标识给系统,或提供一个完成标识供系统查询。当系统收到或查询到桌面程序的完成标识时,确定桌面程序已完成启动。
本实施例,通过屏蔽桌面程序的第一次启动完成前收到的输入事件,避免了不必要的ANR发生;通过正常处理桌面程序的第一次启动完成后收到的输入事件,对用户的行为作出了及时响应;从而改善了用户的使用体验。
本发明的另一个实施例,如图2所示,一种避免智能终端开机时出现无响应的方法,包括:
步骤S100智能终端判断桌面程序的启动是否是第一次启动;
步骤S200当桌面程序的启动为第一次启动时,启动一计时器。
具体地,智能终端是指配有操作系统的设备,比如智能手机、智能手表/手环、智能电视等。
智能终端上电后,有一个操作系统的启动过程。以采用安卓操作系统的智能终端的启动为例,首先加载引导程序BootLoader到RAM中,并执行BootLoader程序启动LinuxKernel;然后启动init进程,做一些初始化工作,包括挂载文件系统、创建工作目录以及启动系统服务进程Zygote等;在Zygote中会进一步去启动system_server进程,然后在system_server进程中启动AMS、WMS、PMS等系统服务,等这些服务启动之后,AMS中会打开Launcher应用(即安卓系统的桌面程序)的home Activity,最终看到智能终端的"桌面"。至此,智能终端的启动完成。
智能终端上电后所进行的桌面程序的启动为桌面程序的第一次启动。在第一次启动之后,在上电状态,有可能发生桌面程序退出,后又启动的现象,此时的启动为第二次启动。
以安卓操作系统为例,第一次启动相当于冷启动,系统需要为桌面程序分配一个新进程。第二次启动相当于热启动,是从已有的进程启动,所以启动时间更短。
可选地,根据系统中存在的启动器包名判断桌面程序是否在系统中启动。当系统中存在与桌面程序的包名相同的启动器包名时,说明桌面程序在系统中启动。
对于采用Android操作系统的智能终端,各种启动器在启动时﹐都会触发框架层启动Activity方法(ActivityStack.java中StartActivityLocked方法),通过监控该Activity方法可以获取到将要启动的启动器包名。桌面程序的包名为HomeActivity。因此,可以通过对Activity方法中包含的启动器包名进行查询过滤后判断桌面程序是否启动。
可选地,初始化桌面程序的启动标识为FALSE,当检测到桌面程序在系统中启动时,将桌面程序的启动标识设为TRUE。当桌面程序的启动标识从FALSE变成TRUE,说明桌面程序的本次启动为第一次启动(即上电后的第一次启动)。若桌面程序的启动标识从TRUE到TRUE,说明桌面程序的启动为第二次或第二次之后的启动。
当检测到桌面程序的第一次启动时,启动一计时器。
步骤S320若在所述计时器超时之前收到外界产生的输入事件,则丢弃所述计时器超时之前收到的输入事件;
步骤S420若在所述计时器超时之后收到外界产生的输入事件,则处理所述计时器超时之后收到的输入事件。
具体地,计时器可以从0开始递增计时,也可以从一个预设阈值开始递减计时。预设阈值根据距离桌面程序的启动完成还需要的时间经验值来设置。
假设计时器从0开始计时,若计时器的计数值未超出预设阈值时,则计时器未超时;若计时器的计数值超出预设阈值时,则计时器超时。
假设计时器从一个预设阈值开始递减计时,若计时器的计数值大于0,则计时器未超时;若计时器的计数值小于0,则计时器超时。
计时器未超时,表明桌面程序尚未启动完成。计时器超时说明桌面程序启动完成。
计时器超时之前收到的外界产生的输入事件,是桌面程序的第一次启动完成前收到的输入事件。所以丢弃计时器超时之前收到的外界产生的输入事件,屏蔽不必要的ANR对话框,避免ANR对话框影响用户的使用体验。
计时器超时之后收到的外界产生的输入事件,是桌面程序的第一次启动完成后收到的输入事件。所以正常处理计时器超时之后收到的外界产生的输入事件,将输入事件正常传递给对应的上层程序处理,可以避免用户认为系统无响应进入死机状态而影响用户的体验。
本实施例,通过设置计时器估计桌面程序的第一次启动是否完成,方案简单可靠,满足了低端设备的处理要求;通过屏蔽桌面程序的第一次启动完成前收到的输入事件,避免了不必要的ANR发生;通过正常处理桌面程序的第一次启动完成后收到的输入事件,对用户的行为作出了及时响应;从而改善了用户的使用体验。
本发明的一个实施例,如图3所示,一种避免智能终端开机时出现无响应的装置,包括:
输入事件处理模块300,用于智能终端判断在其桌面程序的第一次启动完成之前是否收到外界产生的输入事件;若在桌面程序的第一次启动完成之前收到外界产生的输入事件,则丢弃所述桌面程序的第一次启动完成之前收到的输入事件;判断在桌面程序的第一次启动完成之后是否收到外界产生的输入事件;若在桌面程序的第一次启动完成之后收到外界产生的输入事件,则处理所述桌面程序的第一次启动完成之后收到的输入事件。
具体地,智能终端是指配有操作系统的设备,比如智能手机、智能手表/手环、智能电视等。
智能终端上电后,有一个操作系统的启动过程。以采用安卓操作系统的智能终端的启动为例,首先加载引导程序BootLoader到RAM中,并执行BootLoader程序启动LinuxKernel;然后启动init进程,做一些初始化工作,包括挂载文件系统、创建工作目录以及启动系统服务进程Zygote等;在Zygote中会进一步去启动system_server进程,然后在system_server进程中启动AMS、WMS、PMS等系统服务,等这些服务启动之后,AMS中会打开Launcher应用(即安卓系统的桌面程序)的home Activity,最终看到智能终端的"桌面"。对于智能手表而言,可能是看到“时钟表盘”出现。对于智能手机,可能是看到“各个应用程序的快捷图标及名称”出现。至此,智能终端的启动完成。
若智能终端采用高速CPU等,整个启动过程的时间会比较短,用户在启动过程中进行按键、滑屏的概率较低;但对于低端设备,启动时间相对较长,若用户在启动过程中对智能终端进行按键、触屏等,由于系统尚未完成启动,在现有技术中容易发生对用户的行为较长时间无响应,出现ANR对话框的问题。
智能终端上电后所进行的桌面程序的启动为桌面程序的第一次启动。在第一次启动之后,在上电状态,有可能发生桌面程序退出,后又启动的现象,此时的启动为第二次启动。
以安卓操作系统为例,第一次启动相当于冷启动,系统需要为桌面程序分配一个新进程。第二次启动相当于热启动,是从已有的进程启动,所以启动时间更短。比如,智能终端上电开机显示“桌面”,完成了桌面程序的第一次启动;假设智能终端开启了省电功能,过一段时间未收到用户的操作,则自动进入黑屏状态,桌面程序退出,但进程仍保留;后通过按键触发,重新看到智能终端的“桌面”,如此完成了桌面程序的第二次启动。通常热启动比冷启动快。
至桌面程序的第一次启动完成,整个操作系统的启动才算完成;在操作系统的启动完成后,系统才有能力对外界产生的输入事件进行正常的处理。因此有必要屏蔽桌面程序的第一次启动完成前收到的输入事件,进而屏蔽不必要的ANR对话框,避免ANR对话框影响用户的使用体验。
输入事件包括按键、触屏操作产生的输入事件。按键操作包括在智能终端上直接按键或对智能终端遥控按键等操作。触屏操作包括在屏幕滑动、点击屏幕等操作。
若在桌面程序的第一次启动完成之前收到外界产生的输入事件,则丢弃该输入事件,避免用户对桌面程序的第一次启动的干扰,同时避免ANR对话框的出现。
若在桌面程序的第一次启动完成之后收到外界产生的输入事件,则处理该输入事件,将输入事件正常传递给对应的上层程序处理,避免用户认为系统无响应进入死机状态而影响用户的体验。
可选地,当桌面程序启动完成时,发送一个完成标识给系统,或提供一个完成标识供系统查询。当系统收到或查询到桌面程序的完成标识时,确定桌面程序已完成启动。
本实施例,通过屏蔽桌面程序的第一次启动完成前收到的输入事件,避免了不必要的ANR发生;通过正常处理桌面程序的第一次启动完成后收到的输入事件,对用户的行为作出了及时响应;从而改善了用户的使用体验。
本发明的另一个实施例,如图4所示,一种避免智能终端开机时出现无响应的装置,包括:
判断模块100,用于智能终端判断桌面程序的启动是否是第一次启动;
计时模块200,用于当桌面程序的启动为第一次启动时,启动一计时器。
具体地,智能终端是指配有操作系统的设备,比如智能手机、智能手表/手环、智能电视等。
智能终端上电后,有一个操作系统的启动过程。以采用安卓操作系统的智能终端的启动为例,首先加载引导程序BootLoader到RAM中,并执行BootLoader程序启动LinuxKernel;然后启动init进程,做一些初始化工作,包括挂载文件系统、创建工作目录以及启动系统服务进程Zygote等;在Zygote中会进一步去启动system_server进程,然后在system_server进程中启动AMS、WMS、PMS等系统服务,等这些服务启动之后,AMS中会打开Launcher应用(即安卓系统的桌面程序)的home Activity,最终看到智能终端的"桌面"。至此,智能终端的启动完成。
智能终端上电后所进行的桌面程序的启动为桌面程序的第一次启动。在第一次启动之后,在上电状态,有可能发生桌面程序退出,后又启动的现象,此时的启动为第二次启动。
以安卓操作系统为例,第一次启动相当于冷启动,系统需要为桌面程序分配一个新进程。第二次启动相当于热启动,是从已有的进程启动,所以启动时间更短。
可选地,根据系统中存在的启动器包名判断桌面程序是否在系统中启动。当系统中存在与桌面程序的包名相同的启动器包名时,说明桌面程序在系统中启动。
对于采用Android操作系统的智能终端,各种启动器在启动时﹐都会触发框架层启动Activity方法(ActivityStack.java中StartActivityLocked方法),通过监控该Activity方法可以获取到将要启动的启动器包名。桌面程序的包名为HomeActivity。因此,可以通过对Activity方法中包含的启动器包名进行查询过滤后判断桌面程序是否启动。
可选地,初始化桌面程序的启动标识为FALSE,当检测到桌面程序在系统中启动时,将桌面程序的启动标识设为TRUE。当桌面程序的启动标识从FALSE变成TRUE,说明桌面程序的本次启动为第一次启动(即上电后的第一次启动)。若桌面程序的启动标识从TRUE到TRUE,说明桌面程序的启动为第二次或第二次之后的启动。
当检测到桌面程序的第一次启动时,启动一计时器。
输入事件处理模块300,用于若在所述计时器超时之前收到外界产生的输入事件,则丢弃所述计时器超时之前收到的输入事件;若在所述计时器超时之后收到外界产生的输入事件,则处理所述计时器超时之后收到的输入事件。
具体地,计时器可以从0开始递增计时,也可以从一个预设阈值开始递减计时。预设阈值根据距离桌面程序的启动完成还需要的时间经验值来设置。
假设计时器从0开始计时,若计时器的计数值未超出预设阈值时,则计时器未超时;若计时器的计数值超出预设阈值时,则计时器超时。
假设计时器从一个预设阈值开始递减计时,若计时器的计数值大于0,则计时器未超时;若计时器的计数值小于0,则计时器超时。
计时器未超时,表明桌面程序尚未启动完成。计时器超时说明桌面程序启动完成。
计时器超时之前收到的外界产生的输入事件,是桌面程序的第一次启动完成前收到的输入事件。所以丢弃计时器超时之前收到的外界产生的输入事件,屏蔽不必要的ANR对话框,避免ANR对话框影响用户的使用体验。
计时器超时之后收到的外界产生的输入事件,是桌面程序的第一次启动完成后收到的输入事件。所以正常处理计时器超时之后收到的外界产生的输入事件,将输入事件正常传递给对应的上层程序处理,可以避免用户认为系统无响应进入死机状态而影响用户的体验。
本实施例,通过设置计时器估计桌面程序的第一次启动是否完成,方案简单可靠,满足了低端设备的处理要求;通过屏蔽桌面程序的第一次启动完成前收到的输入事件,避免了不必要的ANR发生;通过正常处理桌面程序的第一次启动完成后收到的输入事件,对用户的行为作出了及时响应;从而改善了用户的使用体验。
本发明的一个实施例,如图5所示,一种智能终端20,包括存储器30、处理器40;
所述存储器30,用于存储计算机程序50;
所述处理器40,用于运行所述计算机程序50时实现前述任一实施例的避免智能终端开机时出现无响应的方法;
作为一个示例,处理器40执行计算机程序时实现前述记载的避免智能终端开机时出现无响应的方法中的步骤S300至S410。另外地,处理器40执行计算机程序时实现前述记载的避免智能终端开机时出现无响应的装置中的各模块、单元的功能。作为又一个示例,处理器40执行计算机程序时实现输入事件处理模块300的功能。
可选地,根据完成本发明的具体需要,所述计算机程序可以被分割为一个或多个模块/单元。每个模块/单元可以为能够完成特定功能的一系列计算机程序指令段。该计算机程序指令段用于描述所述计算机程序在智能终端中的执行过程。作为示例,所述计算机程序可以被分割为虚拟装置中的各个模块/单元,譬如输入事件处理模块。
所述处理器用于通过执行所述计算机程序从而实现避免智能终端开机时出现无响应的方法。根据需要,所述处理器可以是中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、通用处理器或其他逻辑器件等。
所述存储器可以为任意能够实现数据、程序存储的内部存储单元和/或外部存储设备。譬如,所述存储器可以为插接式硬盘、智能存储卡(SMC)、安全数字(SD)卡或闪存卡等。所述存储器用于存储计算机程序、智能终端的其他程序及数据。
根据需要,所述智能终端20还可以包括输入输出设备、显示设备、网络接入设备及总线等。
在本实施方式中,智能终端20具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
在一个具体实施场景示例中,将本申请提供的避免智能终端开机时出现无响应的方法和装置应用于采用安卓操作系统的儿童智能手表中。具体实施过程可以参阅以下内容执行。
1.儿童智能手表的启动分成两部分,system的启动和launcher(桌面程序)的HomeActivity的启动,启动完成后,看到Home桌面,出现“时钟表盘”界面。
在launcher启动时,InputDispatcher(用于分发输入信息)会先执行registerInputChannel(输入通道的注册),注册一个HomeActivity类名的InputChannel(输入通道),用于接收input事件(输入事件)。
在registerInputChannel中通过判断启动器包名判断launcher启动已启动时,将初始值为false的全局变量mIsStartUp(是否启动标识)改为true,同时获取此时的时间戳mBootTime=now();
2.在registerInputChannel后,launcher和HomeActivity还需要一段时间(比如3s~6s,受处理器速度影响)完成初始化,此后才是启动完成。
3.在启动完成之前,如果有滑动屏幕等输入事件,通常都会执行到notifyMotion(动作通知)方法中进行封装和分发,在执行notifyMotion方法时,先判断,如果mIsStartUp还没有设置成true或者mIsStartUp已设成true,但计时器(=当前时间eventTime-mBootTime)小于预设阈值(比如,3s)(表明launcher和HomeActivity尚未启动完成),则直接return,不做任何处理;否则进行正常处理。
本实施例,通过屏蔽系统启动完成之前的所有屏幕滑动事件,可以完全解决在Android低端设备上发生的开机时滑屏容易出现无响应的问题;在开机启动过程中不管用户如果操作屏幕,都不会出现无响应的对话框。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种避免智能终端开机时出现无响应的方法,其特征在于,包括:
若智能终端在其桌面程序的第一次启动完成之前收到外界产生的输入事件,则丢弃所述桌面程序的第一次启动完成之前收到的输入事件。
2.根据权利要求1所述的避免智能终端开机时出现无响应的方法,其特征在于,还包括:
若所述智能终端在其桌面程序的第一次启动完成之后收到外界产生的输入事件,则处理所述桌面程序的第一次启动完成之后收到的输入事件。
3.根据权利要求2所述的避免智能终端开机时出现无响应的方法,其特征在于,在所述桌面程序的第一次启动完成之前,包括:
判断所述桌面程序的启动是否是第一次启动;
当所述桌面程序的启动为第一次启动时,启动一计时器。
4.根据权利要求3所述的避免智能终端开机时出现无响应的方法,其特征在于:
所述的若智能终端在其桌面程序的第一次启动完成之前收到外界产生的输入事件,则丢弃所述桌面程序的第一次启动完成之前收到的输入事件,包括:
若在所述计时器超时之前收到外界产生的输入事件,则丢弃所述计时器超时之前收到的输入事件;
所述的若所述智能终端在其桌面程序的第一次启动完成之后收到外界产生的输入事件,则处理所述桌面程序的第一次启动完成之后收到的输入事件,包括:
若在所述计时器超时之后收到外界产生的输入事件,则处理所述计时器超时之后收到的输入事件。
5.根据权利要求1所述的避免智能终端开机时出现无响应的方法,包括:
所述输入事件包括按键、触屏产生的输入事件。
6.根据权利要求1所述的避免智能终端开机时出现无响应的方法,包括:
所述智能终端采用安卓操作系统。
7.一种避免智能终端开机时出现无响应的装置,其特征在于,包括:
输入事件处理模块,用于若智能终端在其桌面程序的第一次启动完成之前收到外界产生的输入事件,则丢弃所述桌面程序的第一次启动完成之前收到的输入事件;若所述智能终端在其桌面程序的第一次启动完成之后收到外界产生的输入事件,则处理所述桌面程序的第一次启动完成之后收到的输入事件。
8.根据权利要求7所述的避免智能终端开机时出现无响应的装置,其特征在于,还包括:
判断模块,用于判断所述桌面程序的启动是否是第一次启动;
计时模块,用于当所述桌面程序的启动为第一次启动时,启动一计时器。
9.根据权利要求8所述的避免智能终端开机时出现无响应的装置,其特征在于:
所述输入事件处理模块,进一步用于若在所述计时器超时之前收到外界产生的输入事件,则丢弃所述计时器超时之前收到的输入事件;若在所述计时器超时之后收到外界产生的输入事件,则处理所述计时器超时之后收到的输入事件。
10.一种智能终端,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于运行所述计算机程序时实现根据权利要求1至6中任一项所述的避免智能终端开机时出现无响应的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011031269.8A CN112202960B (zh) | 2020-09-27 | 2020-09-27 | 避免智能终端开机时出现无响应的方法及装置、智能终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011031269.8A CN112202960B (zh) | 2020-09-27 | 2020-09-27 | 避免智能终端开机时出现无响应的方法及装置、智能终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112202960A true CN112202960A (zh) | 2021-01-08 |
CN112202960B CN112202960B (zh) | 2022-05-13 |
Family
ID=74008489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011031269.8A Active CN112202960B (zh) | 2020-09-27 | 2020-09-27 | 避免智能终端开机时出现无响应的方法及装置、智能终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112202960B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080307048A1 (en) * | 2005-12-29 | 2008-12-11 | Pike Ltd. | Method and System for Operating Applications for Remote Terminal Devices |
US20100272275A1 (en) * | 2009-04-28 | 2010-10-28 | Carreras Ricardo F | ANR Settings Boot Loading |
CN102567113A (zh) * | 2010-12-13 | 2012-07-11 | 盛乐信息技术(上海)有限公司 | 前台程序的调配系统及实现方法 |
CN103702191A (zh) * | 2013-12-16 | 2014-04-02 | Tcl集团股份有限公司 | 一种避免智能电视启动器出现anr的方法 |
CN106060619A (zh) * | 2016-06-27 | 2016-10-26 | 乐视控股(北京)有限公司 | 电视机中蓝牙信号响应控制方法及相关装置 |
CN106155741A (zh) * | 2016-06-30 | 2016-11-23 | 努比亚技术有限公司 | 一种避免应用程序无响应的处理装置及方法 |
-
2020
- 2020-09-27 CN CN202011031269.8A patent/CN112202960B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080307048A1 (en) * | 2005-12-29 | 2008-12-11 | Pike Ltd. | Method and System for Operating Applications for Remote Terminal Devices |
US20100272275A1 (en) * | 2009-04-28 | 2010-10-28 | Carreras Ricardo F | ANR Settings Boot Loading |
CN102567113A (zh) * | 2010-12-13 | 2012-07-11 | 盛乐信息技术(上海)有限公司 | 前台程序的调配系统及实现方法 |
CN103702191A (zh) * | 2013-12-16 | 2014-04-02 | Tcl集团股份有限公司 | 一种避免智能电视启动器出现anr的方法 |
CN106060619A (zh) * | 2016-06-27 | 2016-10-26 | 乐视控股(北京)有限公司 | 电视机中蓝牙信号响应控制方法及相关装置 |
CN106155741A (zh) * | 2016-06-30 | 2016-11-23 | 努比亚技术有限公司 | 一种避免应用程序无响应的处理装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112202960B (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10437631B2 (en) | Operating system hot-switching method and apparatus and mobile terminal | |
CN109918141B (zh) | 线程执行方法、装置、终端及存储介质 | |
CN109891392B (zh) | 一种系统服务超时的处理方法及装置 | |
US7461247B2 (en) | Method for transitioning control of a peripheral device from a first device driver to a second device driver during operating system initialization | |
CN110300328B (zh) | 一种视频播放控制方法、装置及可读存储介质 | |
CN109240791B (zh) | 一种应用程序显示方法、应用程序显示装置及移动终端 | |
CN107590057B (zh) | 冻屏监测与解决方法、移动终端及计算机可读存储介质 | |
CN114779987B (zh) | 显示内容的方法、装置、终端及存储介质 | |
CN108052390B (zh) | 基于线程阻塞的内存清理方法、移动终端及可读存储介质 | |
CN110008027B (zh) | 进程的运行方法、装置、终端及存储介质 | |
CN116089096B (zh) | 负载资源调度方法及电子设备 | |
WO2022127590A1 (zh) | 静电释放检测方法及装置 | |
CN114499945B (zh) | 一种虚拟机的入侵检测方法及装置 | |
CN108958807B (zh) | 一种终端系统启动方法及终端 | |
CN111488207A (zh) | 应用进程保活方法、装置、网络设备及存储介质 | |
CN112202960B (zh) | 避免智能终端开机时出现无响应的方法及装置、智能终端 | |
CN107861826B (zh) | 冻屏监测与解决方法、移动终端及计算机可读存储介质 | |
CN113778430A (zh) | 小程序的数据渲染方法、装置、设备及存储介质 | |
CN116932144A (zh) | 一种车机虚拟机控制方法及系统 | |
EP4354293A1 (en) | Detection method and apparatus, and electronic device | |
CN106067857A (zh) | 一种防止用户被强制下线的方法及装置 | |
CN113965915B (zh) | 数据处理方法和电子设备 | |
CN108595238A (zh) | 应用界面的显示控制方法及装置 | |
CN116360930A (zh) | 一种任务处理的方法及装置 | |
CN107783825A (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 |