一种处理数据的方法和终端技术领域
本发明涉及终端应用领域,尤其涉及一种处理数据的方法和终端。
背景技术
目前,随着智能终端的快速增长,为了满足用户的需求,市场上的应用程序琳琅满
目,例如,基于安卓系统的应用程序的种类越来越多,随之使得每个用户终端上的应用程序
也越来越丰富。
然而,用户在使用应用程序的过程中,或多或少的遇到各种异常并发生应用程序
崩溃的现象,而大部分上线应用程序的崩溃(Crash)不是每次都会发生,对于应用程序崩溃
后,用户在终端上继续操作该应用程序需要重新启动该应用程序,并重头开始操作,导致操
作繁琐,用户体验度降低。
发明内容
有鉴于此,本发明的主要目的在于提出一种处理数据的方法和终端,旨在当应用
程序崩溃后,使得终端能够将该应用程序恢复到发生异常时的状态,提高用户体验度。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种处理数据的方法,应用于一终端,所述方法包
括:根据接收到的对所述终端的应用程序发出的操作,生成操作指令;根据所述操作指令对
所述应用程序进行操作,得到与所述应用程序对应的各界面组件的状态;按照时间顺序将
所述各界面组件的状态写入所述终端的队列中。
可选地,在按照时间顺序将所述各界面组件的状态写入所述终端的队列中之后,
所述方法还包括:在确定所述应用程序发生异常时,按照所述队列的先进先出规则读取所
述队列中的所述各界面组件的状态;根据所述各界面组件的状态对所述应用程序进行恢
复。
可选地,所述确定所述应用程序发生异常,包括:检测所述应用程序;在所述应用
程序出现的异常状况满足预设条件时,确定所述应用程序发生异常。
可选地,所述预设条件为:所述应用程序出现的异常状况不是空指针异常;或者,
本次出现异常状况的时间与上一次出现的相同异常状况的时间的间隔大于预设时间。
可选地,所述各界面组件的状态包括:各界面的输入数据、各界面的输出数据、各
界面的各控件的参数、各界面与各控件的对应关系。
第二方面,本发明实施例提供了一种终端,所述终端包括:生成模块,用于根据接
收到的对所述终端的应用程序发出的操作,生成操作指令;操作模块,用于根据所述操作指
令对所述应用程序进行操作,得到与所述应用程序对应的各界面组件的状态;写入模块,用
于按照时间顺序将所述各界面组件的状态写入所述终端的队列中。
可选地,所述终端还包括:恢复模块,用于在按照时间顺序将所述各界面组件的状
态写入所述终端的队列中之后;在确定所述应用程序发生异常时,按照所述队列的先进先
出规则读取所述队列中的所述各界面组件的状态;根据所述各界面组件的状态对所述应用
程序进行恢复。
可选地,所述恢复模块,具体用于检测所述应用程序;在所述应用程序出现的异常
状况满足预设条件时,确定所述应用程序发生异常。
可选地,所述预设条件为:所述应用程序出现的异常状况不是空指针异常;或者,
本次出现异常状况的时间与上一次出现的相同异常状况的时间的间隔大于预设时间。
可选地,所述各界面组件的状态包括:各界面的输入数据、各界面的输出数据、各
界面的各控件的参数、各界面与各控件的对应关系。
本发明实施例所提供的一种处理数据的方法和终端,首先,根据接收到的对终端
的应用程序发出的操作,生成操作指令,然后根据操作指令对应用程序进行操作,得到了与
应用程序对应的各界面组件的状态,并按照得到各界面组件的状态的时间顺序,将各界面
组件的状态写入终端的队列中;这样,使得终端的队列中保存有所有对应用程序进行操作
后所得到的各界面组件的状态,那么,当应用程序发生异常导致应用程序崩溃时,由于在终
端的队列中存储有应用程序的各界面组件的状态,使得终端能够恢复到该应用程序发生异
常之前的状态,以避免用户在应用程序发生异常导致应用程序崩溃后,重新操作进入应用
程序的繁琐操作,提高了用户的体验度。
附图说明
图1为实现本发明各个实施例的一种可选的终端的硬件结构示意图;
图2为如图1所示的移动终端的无线通信系统示意图;
图3为本发明实施例一中的处理数据的方法的流程示意图;
图4-1为本发明实施例一中的应用程序的一种可选的界面示意图;
图4-2为本发明实施例一中的应用程序的另一种可选的界面示意图;
图5为本发明实施例二中的处理数据的方法的一种可选的流程示意图;
图6为本发明实施例二中一种可选的终端的结构示意图;
图7为本发明实施例二中一种可选的处理数据的方法的流程示意图;
图8为本发明实施例三中的终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述。
现在将参考附图1来描述实现本发明各个实施例的终端。在后续的描述中,使用用
于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并
没有特定的意义。因此,"模块"与"部件"可以混合地使用。
终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、
智能电话、笔记本电脑、数字广播接收器、个人数字助理(PDA)、平板电脑(PAD)、便携式多媒
体播放器(PMP)、导航装置等等的终端以及诸如数字TV、台式计算机等等的固定终端。下面,
假设终端是终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,
根据本发明的实施方式的构造也能够应用于固定类型的终端。
图1为实现本发明各个实施例的一种可选的终端的硬件结构示意。
终端100可以包括无线通信单元110、音频/视频(A/V)输入单元120、用户输入单元
130、感测单元140、输出单元150、存储器160、接口单元170、控制器180和电源单元190等等。
图1示出了具有各种组件的终端,但是应理解的是,并不要求实施所有示出的组件,可以替
代地实施更多或更少的组件,将在下面详细描述终端的元件。
无线通信单元110通常包括一个或多个组件,其允许终端100与无线通信系统或网
络之间的无线电通信。例如,无线通信单元可以包括广播接收模块111、移动通信模块112、
无线互联网模块113、短程通信模块114和位置信息模块115中的至少一个。
广播接收模块111经由广播信道从外部广播管理服务器接收广播信号和/或广播
相关信息。广播信道可以包括卫星信道和/或地面信道。广播管理服务器可以是生成并发送
广播信号和/或广播相关信息的服务器或者接收之前生成的广播信号和/或广播相关信息
并且将其发送给终端的服务器。广播信号可以包括TV广播信号、无线电广播信号、数据广播
信号等等。而且,广播信号可以进一步包括与TV或无线电广播信号组合的广播信号。广播相
关信息也可以经由移动通信网络提供,并且在该情况下,广播相关信息可以由移动通信模
块112来接收。广播信号可以以各种形式存在,例如,其可以以数字多媒体广播(DMB)的电子
节目指南(EPG)、数字视频广播手持(DVB-H)的电子服务指南(ESG)等等的形式而存在。广播
接收模块111可以通过使用各种类型的广播系统接收信号广播。特别地,广播接收模块111
可以通过使用诸如多媒体广播-地面(DMB-T)、数字多媒体广播-卫星(DMB-S)、数字视频广
播-手持(DVB-H),前向链路媒体(MediaFLO@)的数据广播系统、地面数字广播综合服务
(ISDB-T)等等的数字广播系统接收数字广播。广播接收模块111可以被构造为适合提供广
播信号的各种广播系统以及上述数字广播系统。经由广播接收模块111接收的广播信号和/
或广播相关信息可以存储在存储器160(或者其它类型的存储介质)中。
移动通信模块112将无线电信号发送到基站(例如,接入点、节点B等等)、外部终端
以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通
话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。
无线互联网模块113支持终端的无线互联网接入。该模块可以内部或外部地耦接
到终端。该模块所涉及的无线互联网接入技术可以包括WLAN(无线LAN)(Wi-Fi)、Wibro(无
线宽带)、Wimax(全球微波互联接入)、HSDPA(高速下行链路分组接入)等等。
短程通信模块114是用于支持短程通信的模块。短程通信技术的一些示例包括蓝
牙TM、射频识别(RFID)、红外数据协会(IrDA)、超宽带(UWB)、紫蜂TM等等。
位置信息模块115是用于检查或获取终端的位置信息的模块。位置信息模块115的
典型示例是GPS。根据当前的技术,作为GPS的位置信息模块115计算来自三个或更多卫星的
距离信息和准确的时间信息并且对于计算的信息应用三角测量法,从而根据经度、纬度和
高度准确地计算三维当前位置信息。当前,用于计算位置和时间信息的方法使用三颗卫星
并且通过使用另外的一颗卫星校正计算出的位置和时间信息的误差。此外,GPS模块115能
够通过实时地连续计算当前位置信息来计算速度信息。
A/V输入单元120用于接收音频或视频信号。A/V输入单元120可以包括相机121和
麦克风122,相机121对在视频捕获模式或图像捕获模式中由图像捕获装置获得的静态图片
或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元151上。经相机121处理
后的图像帧可以存储在存储器160(或其它存储介质)中或者经由无线通信单元110进行发
送,可以根据终端的构造提供两个或更多相机121。麦克风122可以在电话通话模式、记录模
式、语音识别模式等等运行模式中经由麦克风122接收声音(音频数据),并且能够将这样的
声音处理为音频数据。处理后的音频(语音)数据可以在电话通话模式的情况下转换为可经
由移动通信模块112发送到移动通信基站的格式输出。麦克风122可以实施各种类型的噪声
消除(或抑制)算法以消除(或抑制)在接收和发送音频信号的过程中产生的噪声或者干扰。
用户输入单元130可以根据用户输入的命令生成键输入数据以控制终端的各种操
作。用户输入单元130允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板
(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等
等。特别地,当触摸板以层的形式叠加在显示单元151上时,可以形成触摸屏。
感测单元140检测终端100的当前状态,(例如,终端100的打开或关闭状态)、终端
100的位置、用户对于终端100的接触(即,触摸输入)的有无、终端100的取向、终端100的加
速或减速移动和方向等等,并且生成用于控制终端100的操作的命令或信号。例如,当终端
100实施为滑动型移动电话时,感测单元140可以感测该滑动型电话是打开还是关闭。另外,
感测单元140能够检测电源单元190是否提供电力或者接口单元170是否与外部装置耦接。
感测单元140可以包括接近传感器141将在下面结合触摸屏来对此进行描述。
接口单元170用作至少一个外部装置与终端100连接可以通过的接口。例如,外部
装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数
据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视
频I/O端口、耳机端口等等。识别模块可以是存储用于验证用户使用终端100的各种信息并
且可以包括用户识别模块(UIM)、客户识别模块(SIM)、通用客户识别模块(USIM)等等。另
外,具有识别模块的装置(下面称为"识别装置")可以采取智能卡的形式,因此,识别装置可
以经由端口或其它连接装置与终端100连接。接口单元170可以用于接收来自外部装置的输
入(例如,数据信息、电力等等)并且将接收到的输入传输到终端100内的一个或多个元件或
者可以用于在终端和外部装置之间传输数据。
另外,当终端100与外部底座连接时,接口单元170可以用作允许通过其将电力从
底座提供到终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到终
端的路径。从底座输入的各种命令信号或电力可以用作用于识别终端是否准确地安装在底
座上的信号。输出单元150被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频
信号、视频信号、警报信号、振动信号等等)。输出单元150可以包括显示单元151、音频输出
模块152、警报单元153等等。
显示单元151可以显示在终端100中处理的信息。例如,当终端100处于电话通话模
式时,显示单元151可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等
等)相关的用户界面(UI)或图形用户界面(GUI)。当终端100处于视频通话模式或者图像捕
获模式时,显示单元151可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关
功能的UI或GUI等等。
同时,当显示单元151和触摸板以层的形式彼此叠加以形成触摸屏时,显示单元
151可以用作输入装置和输出装置。显示单元151可以包括液晶显示器(LCD)、薄膜晶体管
LCD(TFT-LCD)、有机发光二极管(OLED)显示器、柔性显示器、三维(3D)显示器等等中的至少
一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明
显示器,典型的透明显示器可以例如为TOLED(透明有机发光二极管)显示器等等。根据特定
想要的实施方式,终端100可以包括两个或更多显示单元(或其它显示装置),例如,终端可
以包括外部显示单元(未示出)和内部显示单元(未示出)。触摸屏可用于检测触摸输入压力
以及触摸输入位置和触摸输入面积。
音频输出模块152可以在终端处于呼叫信号接收模式、通话模式、记录模式、语音
识别模式、广播接收模式等等模式下时,将无线通信单元110接收的或者在存储器160中存
储的音频数据转换音频信号并且输出为声音。而且,音频输出模块152可以提供与终端100
执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出
模块152可以包括扬声器、蜂鸣器等等。
存储器160可以存储由控制器180执行的处理和控制操作的软件程序等等,或者可
以暂时地存储已经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而
且,存储器160可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的
数据。
存储器160可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多
媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储
器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器
(PROM)、磁性存储器、磁盘、光盘等等。而且,终端100可以与通过网络连接执行存储器160的
存储功能的网络存储装置协作。
控制器180通常控制终端的总体操作。例如,控制器180执行与语音通话、数据通
信、视频通话等等相关的控制和处理。另外,控制器180可以包括用于再现(或回放)多媒体
数据的多媒体模块181,多媒体模块181可以构造在控制器180内,或者可以构造为与控制器
180分离。控制器180可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘
制输入识别为字符或图像。
电源单元190在控制器180的控制下接收外部电力或内部电力并且提供操作各元
件和组件所需的适当的电力。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算
机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路
(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可
编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的
电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器180中实施。
对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的
软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来
实施,软件代码可以存储在存储器160中并且由控制器180执行。
至此,已经按照其功能描述了终端。下面,为了简要起见,将描述诸如折叠型、直板
型、摆动型、滑动型终端等等的各种类型的终端中的滑动型终端作为示例。因此,本发明能
够应用于任何类型的终端,并且不限于滑动型终端。
如图1中所示的终端100可以被构造为利用经由帧或分组发送数据的诸如有线和
无线通信系统以及基于卫星的通信系统来操作。
现在将参考图2描述其中根据本发明的移动终端能够操作的通信系统。
这样的通信系统可以使用不同的空中接口和/或物理层。例如,由通信系统使用的
空中接口包括例如频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)和通用移动通信系
统(UMTS)(特别地,长期演进(LTE))、全球移动通信系统(GSM)等等。作为非限制性示例,下
面的描述涉及CDMA通信系统,但是这样的教导同样适用于其它类型的系统。
参考图2,CDMA无线通信系统可以包括多个移动终端100、多个基站(BS)270、基站
控制器(BSC)275和移动交换中心(MSC)280。MSC280被构造为与公共电话交换网络(PSTN)
290形成接口。MSC280还被构造为与可以经由回程线路耦接到基站270的BSC275形成接口。
回程线路可以根据若干已知的接口中的任一种来构造,所述接口包括例如E1/T1、ATM,IP、
PPP、帧中继、HDSL、ADSL或xDSL。将理解的是,如图2中所示的系统可以包括多个BSC275。
每个BS270可以服务一个或多个分区(或区域),由多向天线或指向特定方向的天
线覆盖的每个分区放射状地远离BS270。或者,每个分区可以由用于分集接收的两个或更多
天线覆盖。每个BS270可以被构造为支持多个频率分配,并且每个频率分配具有特定频谱
(例如,1.25MHz,5MHz等等)。
分区与频率分配的交叉可以被称为CDMA信道。BS270也可以被称为基站收发器子
系统(BTS)或者其它等效术语。在这样的情况下,术语“基站”可以用于笼统地表示单个
BSC275和至少一个BS270。基站也可以被称为“蜂窝站”。或者,特定BS270的各分区可以被称
为多个蜂窝站。
如图2中所示,广播发射器(BT)295将广播信号发送给在系统内操作的移动终端
100。如图1中所示的广播接收模块111被设置在移动终端100处以接收由BT295发送的广播
信号。在图2中,示出了几个全球定位系统(GPS)卫星300。卫星300帮助定位多个移动终端
100中的至少一个。
在图2中,描绘了多个卫星300,但是理解的是,可以利用任何数目的卫星获得有用
的定位信息。如图1中所示的GPS模块115通常被构造为与卫星300配合以获得想要的定位信
息。替代GPS跟踪技术或者在GPS跟踪技术之外,可以使用可以跟踪移动终端的位置的其它
技术。另外,至少一个GPS卫星300可以选择性地或者额外地处理卫星DMB传输。
作为无线通信系统的一个典型操作,BS270接收来自各种移动终端100的反向链路
信号。移动终端100通常参与通话、消息收发和其它类型的通信。特定基站270接收的每个反
向链路信号被在特定BS270内进行处理。获得的数据被转发给相关的BSC275。BSC提供通话
资源分配和包括BS270之间的软切换过程的协调的移动管理功能。BSC275还将接收到的数
据路由到MSC280,其提供用于与PSTN290形成接口的额外的路由服务。类似地,PSTN290与
MSC280形成接口,MSC与BSC275形成接口,并且BSC275相应地控制BS270以将正向链路信号
发送到移动终端100。
下面将基于上述终端硬件结构以及通信系统,提出本发明方法各个实施例。
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
实施例一
基于前述的实施例,本发明实施例提供一种处理数据的方法,该方法应用于终端,
该处理数据的方法所实现的功能可以通过终端中的处理器调用程序代码来实现,当然程序
代码可以保存在计算机存储介质中,可见,该终端至少包括处理器和存储介质。
本实施例提供一种处理数据的方法,图3为本发明实施例一中的处理数据的方法
的流程示意图,如图3所示,该处理数据的方法包括:
S301:根据接收到的对终端的应用程序发出的操作,生成操作指令;
具体来说,用户按照自身的需求,打开某个应用程序,在当前界面上用户可以对应
用程序进行操作,使得终端接收到来自用户对终端的应用程序所发出的操作,然后终端将
接收到的用户对该应用程序所进行的所有操作,生成操作指令;
其中,上述用户对应用程序所进行的操作可以包括:点击操作、上滑操作、下滑操
作、左滑操作、右滑操作、长按操作、输入操作、复制操作、粘贴操作等等;上述操作指令可以
用于终端中的应用程序完成上滑功能、下滑功能、左滑功能、复制粘贴功能等等;这里,本发
明实施例不做具体限定。
这里,需要说明的是,上述对终端的应用程序发出的操作包括:从打开应用程序的
操作开始,包括打开应用程序的操作在内的所有操作。
举例来说,在应用(App,Application)1关闭的状态下,用户发出对App1图标的点
击操作,终端根据点击操作生成对应的操作指令,然后用户在App1的界面上每进行一个操
作,就生成对应的操作指令,也就是说,上述终端所接收到的对终端应用程序发出的操作是
从对App1图标的点击操作开始,并且包括该点击操作在内的之后进行的所有操作。
通过S301,终端将用户对终端的应用程序发出的操作,转换成了操作指令,使得终
端可以根据操作指令来响应用户发出的对终端的应用程序的操作。
S302:根据操作指令对应用程序进行操作,得到与应用程序对应的各界面组件的
状态;
其中,上述根据操作指令对应用程序进行操作可以包括:当操作指令为打开指令
时,终端打开应用程序,或者,当操作指令为上滑指令时,终端将应用程序的当前界面向上
滑动;这里,本发明实施例对根据操作指令对应用程序进行操作不限于此;
相应地,当操作指令为打开指令时,终端打开应用程序,那么,得到的界面组件的
状态为应用程序的首页面对应的界面组件的状态;或者,当操作指令为上滑指令时,那么,
得到的界面组件的状态为应用程序上滑后的界面对应的界面组件的状态。
举例来说,以安卓系统为例,安卓系统的四大组件都是由AMS(AndroidManifest)
这个服务进行管理,界面组件(Activity)作为四大组件之一,用于承接安卓系统的应用界
面;
那么,在S301中,生成操作指令之后,对根据操作指令对终端的应用程序进行操作
可以得到与应用程序对应的各个界面,而每个界面对应有一个Activity,一个Activity的
状态包括多个控件,每个控件可以包括多个用于显示在终端的显示界面上的显示参数,所
以,当运行中的应用程序发生异常导致应用程序发生崩溃,终端可以根据得到的各界面组
件的状态,使得终端能够恢复至发生异常时的界面。
另外,上述操作指令为多个时,根据操作指令的执行顺序生成与应用程序对应的
各界面组件的状态,也就是说,该各界面组件的状态也是具有时间顺序的。
还是以应用程序为App1来举例说明,图4-1为本发明实施例一中应用程序的一种
可选的时界面的示意图;如图4-1所示,用户点击App1图标,终端的显示界面显示App1首页,
此时,可以得到将该App1首页对应的界面组件的状态,然后,图4-2为本发明实施例一中应
用程序的另一种可选的时界面的示意图;如图4-2所示,用户点击App1首页中的图片,打开
图片,终端的显示界面上显示该图片,此时,可以得到该图片对应的界面组件的状态。
至此,便得到了与应用程序对应的各界面组件的状态。
S303:按照时间顺序将各界面组件的状态写入终端的队列中。
在S302中,得到了具有时间顺序的各界面组件的状态之后,那么,仍然要按照时间
顺序将各界面组件的状态写入终端的队列中,这里,由于队列是按照先进先出的规则来写
入和读取的,所以,采用队列写入各界面组件的状态的方式有利于应用程序发生异常时及
时地恢复至发生异常之前的状态;
需要说明的是,这里,需要将该应用程序从打开开始得到的所有的界面组件的状
态都写入终端的队列中;
还是以安卓系统为例,在终端的应用程序发生异常导致应用程序崩溃需要恢复
时,需要进行Activity恢复,如果终端的队列中仅仅存储了当前界面的Activity的状态,那
么,只能够恢复至当前的Activity,这将导致用户按返回键后直接退出程序,而不是退回到
前一页,因此,需要将应用程序自启动的所有Activity的状态写入终端的队列中,进而使得
终端在恢复操作时能够恢复整个队列中所有的Activity的状态。
这里,仍然以应用程序为App1为例,用户点击App1图标,终端的显示界面显示App1
首页(如图4-1所示),此时,可以得到App1首页对应的界面组件的状态,将App1首页对应的
界面组件的状态写入终端的队列中,然后用户点击App1首页中的图片,打开该图片,终端的
显示界面上显示该图片(如图4-2所示),此时可以得到该图片对应的界面组件的状态,将该
图片对应的界面组件的状态写入终端的队列中,随后,以此类推。
这样,可以将各界面组件的状态按照时间的先后顺序写入终端的队列中,保障队
列中保存的各界面组件的状态的准确性。
本发明实施例所提供的一种处理数据的方法,首先,根据接收到的对终端的应用
程序发出的操作,生成操作指令,然后根据操作指令对应用程序进行操作,得到了与应用程
序对应的各界面组件的状态,并按照得到各界面组件的状态的时间顺序,将各界面组件的
状态写入终端的队列中;这样,使得终端的队列中保存有所有对应用程序进行操作后所得
到的各界面组件的状态,那么,当应用程序发生异常导致应用程序崩溃时,由于在终端的队
列中存储有应用程序的各界面组件的状态,使得终端能够恢复到该应用程序发生异常之前
的状态,以避免用户在应用程序发生异常导致应用程序崩溃后,重新操作进入应用程序的
繁琐操作,提高了用户的体验度。
实施例二
基于前述的实施例,本实施例提供一种处理数据的方法,该方法应用于终端,该处
理数据的方法所实现的功能可以通过终端中的处理器调用程序代码来实现,当然程序代码
可以保存在计算机存储介质中,可见,该终端至少包括处理器和存储介质。
图5为本发明实施例二中的处理数据的方法的一种可选的流程示意图,如图5所
示,在上述实施例一的基础上,在S303之后,上述方法还可以包括:
S501:在确定应用程序发生异常时,按照队列的先进先出规则读取队列中的各界
面组件的状态;
在具体实施过程中,终端在运行上述应用程序的过程中,终端中的应用程序发生
异常,导致该应用程序崩溃,例如,当终端在运行App1时,出现异常情况,使得运行中的App1
即将停止运行或者被迫关闭时,为了避免App1停止运行或者被迫关闭,此时,终端按照队列
的先进先出规则,读取队列中的各界面组件的状态;
其中,由于写入各界面组件的状态是将应用程序自启动的所有的界面组件的状态
写入队列中的,所以,此时读取出的各界面组件的状态为应用程序自启动的所有的界面组
件的状态。
在实际应用中,终端的应用程序出现异常的种类很多,有些种类的异常是可以通
过读取队列中的各界面组件的状态来恢复应用程序的,而有些种类的异常是不可以通过读
取队列中的各界面组件的状态来恢复应用程序的,所以,在应用程序出现异常时,需要先对
所出现的异常进行筛选,在一种可选的实施例中,为了筛选出可恢复的异常,在S501中,确
定应用程序发生异常的方法可以包括:
检测应用程序;在应用程序出现的异常状况满足预设条件时,确定应用程序发生
异常。
首先,终端对应用程序实时的进行检测,当应用程序出现异常时,判断所出现的异
常状况是否满足预设条件,在满足的情况下,确定应用程序发生异常,在不满足的情况下,
不确定应用程序发生异常;也就是说,只有当所出现的异常状况满足预设条件时,所出现的
异常才是终端可恢复的异常,在不满足预设条件的情况下,所出现的异常为终端不可恢复
的异常。
其中,上述预设条件可以为:应用程序出现的异常状况不是空指针异常;或者,本
次出现异常状况的时间与上一次出现的相同异常状况的时间的间隔大于预设时间。
具体来说,当应用程序出现的异常状况不是空指针异常时,或者,当本次出现的异
常状况时的时间点与上一次出现的相同异常状况的时间点之间的时间间隔大于预设时间
时,确定该异常是可以恢复的异常。
其中,空指针异常指的应用程序在运行的过程中,后台运行的程序代码指向空指
针;
另外,上述预设时间是可以预先进行设置,在本次出现异常状况的时间与上一次
出现的相同异常状况的时间的间隔大于预设时间,说明本次出现的异常状况不是频繁重复
出现的不可恢复的异常,所以确定为可恢复的异常。
S502:根据各界面组件的状态对应用程序进行恢复。
在S501中,按照队列先进先出的规则,读取出队列中的应用程序的各界面组件的
状态之后,终端根据各界面组件的状态,模拟用户对终端的应用程序的操作,使得终端生成
操作指令,进而使得终端恢复至应用程序发生异常崩溃之前的界面;
并且,由于写入各界面组件的状态是将应用程序自启动的所有的界面组件的状态
写入队列中的,那么,终端可以读取到应用程序自启动的所有的界面组件的状态,进而使得
终端可以恢复至应用程序发生异常崩溃之前的界面,当用户按返回键后能够退回到前一
页。
其中,上述实施例中的各界面组件的状态可以包括:各界面的输入数据、各界面的
输出数据、各界面的各控件的参数、各界面与各控件的对应关系。
另外,上述各界面的输入数据可以包括应用程序从一个界面跳转到下一界面的输
入的数据和输出数据,上述各界面的输出数据可以包括应用程序从一个界面跳转到下一界
面的输出的数据,上述各界面的各控件的参数为各界面对应的控件中用于显示的显示参
数,各界面与各控件的对应关系可以通过界面与控件的映射表的形式存储的,在界面与控
件的映射表中,每个界面都对应有多个控件。
下面举实例来对上述处理数据的方法进行说明。
图6为本发明实施例二中一种可选的终端的结构示意图;参考图6中所示,上述终
端可以包括:异常监测模块61、队列数据存储模块62和异常恢复模块63;
其中,异常监测模块61负责监听和筛选异常导致的Crash,例如,在安卓系统中,终
端可以使用安卓原生异常捕获接口UncaughtExceptionHandler监听异常的发生,同时判断
异常的种类,这里,异常种类可以分为可恢复异常和不可恢复异常,对于部分不可恢复的异
常不能走恢复流程,例如,应用程序出现的异常状况不是空指针异常;或者,本次出现异常
状况的时间与上一次出现的相同异常状况的时间的间隔大于预设时间。
上述队列数据存储模块62存储自进程启动开始的Activity的状态,记录前一个
Activity跳转到后一个Activity的输入输出状态,同时建立当前控件状态的映射表,存储
当前界面控件的数据状态和数据值;当异常发生,进程退出之前,触发保存各控件的状态。
上述异常恢复模块63负责进程重启并恢复到异常发生之前的状态,当异常发生,
异常监测模块63触发异常恢复模块63读取当前进程的Activity的状态,重新启动进程并分
别依次启动队列中的Activity,最后读取异常发生页面各个控件的状态,恢复该界面至
Crash之前的状态。
基于上述图6的结构,仍然以安卓系统为举例说明,图7为本发明实施例二中一种
可选的处理数据的方法的流程示意图;如图7所示,该处理数据的方法如下:
S701:用户对应用程序进行点击操作,使得终端启动该应用程序,应用程序的进程
启动,产生各个Activity的状态;
S702:队列数据存储模块62将产生的各个Activity的状态按照时间顺序写入终端
的队列中;
S703:异常监测模块61实时检测该应用程序;
S704:异常监测模块61检测到该应用程序是否出现异常,如果是,则进入S705;如
果否,则进入S703;
S705:异常监测模块61判断该异常Crash的种类是否为可恢复异常;如果是,则进
入S706;如果否,则执行进程退出;
S706:异常恢复模块63从队列数据存储模块62中依次读取各个Activity的状态;
S707:异常恢复模块63在读取完最后一个Activity的状态之后,对应用程序进行
恢复;
S708:异常恢复模块63判断该应用程序正常启动并恢复至异常Crash出现之前的
状态;如果是,则恢复成功,如果否,则恢复失败。
采用上述实施例中,当用户遇到程序异常报错时,能恢复异常之前的状态,使用户
甚至觉察不到异常的发生,大大增强了用户使用智能手机的体验。
实施例三
基于前述的方法实施例,本实施例提供一种终端,该终端中的生成模块、操作模
块、写入模块和恢复模块,都可以通过终端中的处理器来实现,当然也可通过具体的逻辑电
路实现;在具体实施例的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信
号处理器(DSP)或现场可编程门阵列(FPGA)等。
本实施例所提供的终端,图8为本发明实施例三中的终端的结构示意图,如图8所
示,该终端包括生成模块81、操作模块82和写入模块83,其中,
生成模块81,用于根据接收到的对终端的应用程序发出的操作,生成操作指令;操
作模块82,用于根据操作指令对所述应用程序进行操作,得到与应用程序对应的各界面组
件的状态;写入模块83,用于按照时间顺序将各界面组件的状态写入终端的队列中。
其中,上述各界面组件的状态包括:各界面的输入数据、各界面的输出数据、各界
面的各控件的参数、各界面与各控件的对应关系。
在具体实施过程中,终端在运行上述应用程序的过程中,终端中的应用程序发生
异常,导致该应用程序崩溃,为了及时地恢复该应用程序至异常崩溃之前的状态,在一种可
选的实施例中,上述终端还包括:恢复模块,用于在按照时间顺序将各界面组件的状态写入
终端的队列中之后;在确定应用程序发生异常时,按照队列的先进先出规则读取队列中的
所述各界面组件的状态;根据各界面组件的状态对应用程序进行恢复。
在实际应用中,终端的应用程序出现异常的种类很多,有些种类的异常是可以通
过读取队列中的各界面组件的状态来恢复应用程序的,而有些种类的异常是不可以通过读
取队列中的各界面组件的状态来恢复应用程序的,所以,在应用程序出现异常时,需要先对
所出现的异常进行筛选,在一种可选的实施例中,上述恢复模块,具体用于检测应用程序;
在应用程序出现的异常状况满足预设条件时,确定应用程序发生异常。
其中,上述预设条件为:
应用程序出现的异常状况不是空指针异常;或者,本次出现异常状况的时间与上
一次出现的相同异常状况的时间的间隔大于预设时间。
这里需要指出的是:以上终端实施例项的描述,与上述方法描述是类似的,具有同
方法实施例相同的有益效果,因此不做赘述。对于本发明终端实施例中未披露的技术细节,
本领域的技术人员请参照本发明方法实施例的描述而理解,为节约篇幅,这里不再赘述。
这里需要指出的是:
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的
特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的
“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结
构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施
例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功
能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例
序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排
他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而
且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有
的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该
要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其
它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为
一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或
可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部
分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合
或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显
示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单
元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可
以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述
集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过
程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在
执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存
储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品
销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施
例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,
该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以
是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。
而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介
质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何
熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵
盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。