终端关机方法和装置与流程

文档序号:11261839阅读:396来源:国知局
终端关机方法和装置与流程

本申请涉及终端技术领域,尤其涉及一种终端关机方法和装置。



背景技术:

目前,很多终端在停止的时候,内部还在运行,并未结束就被强制终止了,同时在系统停止的瞬时,还有会少量的用户请求没被响应。这种方式带来的问题是一方面交互不够友好,另外可能会产生脏数据、丢失数据等问题。



技术实现要素:

本申请旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本申请的一个目的在于提出一种终端关机方法,该方法可以解决强制关机存在的一些问题。

本申请的另一个目的在于提出一种终端关机装置。

为达到上述目的,本申请第一方面实施例提出的终端关机方法,包括:接收到关闭指令后,获取预先注册的线程中未启动的线程;执行所述未启动的线程;在所有未启动的线程执行完毕后,关闭终端。

本申请第一方面实施例提出的终端关机方法,通过未启动的线程全部执行完毕后再关闭终端,可以避免强制关机引起的问题,提高交互友好性、 避免脏数据的产生,避免数据丢失等。

为达到上述目的,本申请第二方面实施例提出的终端关机装置,包括:获取模块,用于接收到关闭指令后,获取预先注册的线程中未启动的线程;执行模块,用于执行所述未启动的线程;关闭模块,用于在所有未启动的线程执行完毕后,关闭终端。

本申请第二方面实施例提出的终端关机装置,通过未启动的线程全部执行完毕后再关闭终端,可以避免强制关机引起的问题,提高交互友好性、避免脏数据的产生,避免数据丢失等。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是本申请一实施例提出的终端关机方法的流程示意图;

图2是本申请另一实施例提出的终端关机方法的流程示意图;

图3是本申请另一实施例提出的终端关机装置的结构示意图;

图4是本申请另一实施例提出的终端关机装置的结构示意图;

图5是本申请另一实施例提出的终端的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模 块。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

图1是本申请一实施例提出的终端关机方法的流程示意图。参见图1,该方法包括:

s11:接收到关闭指令后,获取预先注册的线程中未启动的线程。

其中,可以对应每种业务逻辑,注册一个线程,以便通过线程的执行实现对应的业务逻辑。业务逻辑例如包括关闭文件、删除文件等。

s12:执行所述未启动的线程。

其中,可以根据线程的状态标识确定线程是否未启动。

例如,对应每个线程设置状态标识,状态标识例如用islive表示,其中,islive可以包括真(true)或假(false)两种状态,当一个线程的islive是false时,确定该线程是未启动的线程。

在确定出未启动的线程后,可以依次执行每个未启动的线程。

s13:在所有未启动的线程执行完毕后,关闭终端。

例如,接收到关闭指令时存在n个未启动的线程,则当这n个未启动的线程都被执行完毕后,再关闭终端。

本实施例中,通过未启动的线程全部执行完毕后再关闭终端,可以避免强制关机引起的问题,提高交互友好性、避免脏数据的产生,避免数据丢失等。

图2是本申请另一实施例提出的终端关机方法的流程示意图。本实施例的流程可以分为注册阶段、拒绝阶段和关闭阶段。参见图2,该方法包括:

s21:根据注册的业务逻辑,对应所述业务逻辑创建线程,以及,注册并存储回调线程。

该阶段可以称为注册阶段。

其中,用户可以自定义业务逻辑,例如,关机时关闭哪些文件或删除哪些文件等。

具体的,该方法对应的装置可以具体是一个软件包,该软件包对外提供一个接口,该接口例如称为ishutdownhook接口,用户可以调用该接口并将自定义的业务逻辑注册到该装置中。

在用户注册业务逻辑到该装置中后,可以对应每个业务逻辑创建一个新的线程(tread),以实现对应的业务逻辑。在创建一个线程后,该线程常驻在内存中,并根据自身的业务逻辑启动执行。

另外,在注册阶段,该装置还可以内置回调线程,回调线程是用于实现hook机制的线程,以便在接收到关闭指令后,获取并执行未启动的线程。

s22:接收到关闭指令后,如果接收到新请求,则拦截新请求,并拒绝或转发新请求。

该阶段可以称为拒绝阶段。

当接收到关闭指令后,可以启动该装置内置的过滤器,过滤器在启动后,会拦截新请求。

在拦截到新请求后,可以拒绝该新请求,例如,返回对端一个状态,表明服务已关闭,而不是等到超时。或者,

在拦截到新请求后,也可以是转发新请求,例如,注册阶段时注册的业务逻辑表明需要对该新请求进行转发,则可以将该新请求转发给对应的线程进行处理。

s23:获取回调线程,通过所述回调线程获取未启动的线程,执行每个未启动的线程,并在所有未启动的线程执行完毕后,关闭终端。

该阶段可以称为关闭阶段。

其中,可以通过内置的注册其获取到所有的注册过的线程,并通过回调线程根据islive标识过滤出所有的未启动的线程,未启动的线程是指islive是false的线程。

在获取到所有的未启动的线程后,可以执行这些线程,并在执行完毕后关闭。

本实施例中,通过未启动的线程全部执行完毕后再关闭终端,可以避免强制关机引起的问题,提高交互友好性、避免脏数据的产生,避免数据丢失等。进一步的,通过拦截新请求并拒绝或转发,相对于等待超时的方式,可以进一步提高友好性。

图3是本申请另一实施例提出的终端关机装置的结构示意图。参见图3,该装置30包括:获取模块31、执行模块32和关闭模块33。

获取模块31,用于接收到关闭指令后,获取预先注册的线程中未启动的线程。

其中,可以对应每种业务逻辑,注册一个线程,以便通过线程的执行实现对应的业务逻辑。业务逻辑例如包括关闭文件、删除文件等。

执行模块32,用于执行所述未启动的线程。

其中,可以根据线程的状态标识确定线程是否未启动。

例如,对应每个线程设置状态标识,状态标识例如用islive表示,其中,islive可以包括真(true)或假(false)两种状态,当一个线程的islive是false时,确定该线程是未启动的线程。

在确定出未启动的线程后,可以依次执行每个未启动的线程。

关闭模块33,用于在所有未启动的线程执行完毕后,关闭终端。

例如,接收到关闭指令时存在n个未启动的线程,则当这n个未启动的线程都被执行完毕后,再关闭终端。

一些实施例中,参见图4,该装置还包括:

获取模块34,用于通过对外的接口,获取注册的业务逻辑。

具体的,该装置可以是一个软件包,该软件包对外提供一个接口,该接口例如称为ishutdownhook接口,用户可以调用该接口并将自定义的业务逻辑注册到该装置中。

创建模块35,用于根据注册的业务逻辑,对应所述业务逻辑创建线程。

在用户注册业务逻辑到该装置中后,可以对应每个业务逻辑创建一个新的线程(tread),以实现对应的业务逻辑。在创建一个线程后,该线程常驻在内存中,并根据自身的业务逻辑启动执行。

一些实施例中,参见图4,该装置还包括:

回调模块36,用于注册并存储回调线程,以便接收到关闭指令后,通过所述回调线程获取未启动的线程。

回调线程是用于实现hook机制的线程,以便在接收到关闭指令后,获取并执行未启动的线程。

其中,可以通过内置的注册其获取到所有的注册过的线程,并通过回调线程根据islive标识过滤出所有的未启动的线程,未启动的线程是指islive是false的线程。

在获取到所有的未启动的线程后,可以执行这些线程,并在执行完毕后关闭。

一些实施例中,参见图4,该装置还包括:

拦截模块37,用于在接收到关闭指令后,如果接收到新请求,则拦截所述新请求,并在拦截后拒绝所述新请求或转发所述新请求。

当接收到关闭指令后,可以启动该装置内置的过滤器,过滤器在启动后,会拦截新请求。

在拦截到新请求后,可以拒绝该新请求,例如,返回对端一个状态,表明服务已关闭,而不是等到超时。或者,

在拦截到新请求后,也可以是转发新请求,例如,注册阶段时注册的业务逻辑表明需要对该新请求进行转发,则可以将该新请求转发给对应的线程进行处理。

本实施例中,通过未启动的线程全部执行完毕后再关闭终端,可以避免强制关机引起的问题,提高交互友好性、避免脏数据的产生,避免数据丢失等。进一步的,通过拦截新请求并拒绝或转发,相对于等待超时的方式,可以进一步提高友好性。

图5是本申请另一实施例提出的终端的结构示意图。参见图5,该终端50包括:壳体51、处理器52、存储器53、电路板54和电源电路55,其中,电路板54安置在壳体围成的空间内部,处理器52和存储器53设置在电路板54上;电源电路55,用于为电子设备的各个电路或器件供电;存储器53用于存储可执行程序代码;处理器52通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:

接收到关闭指令后,获取预先注册的线程中未启动的线程;

执行所述未启动的线程;

在所有未启动的线程执行完毕后,关闭终端。

可选的,还包括:

在接收到关闭指令后,如果接收到新请求,则拦截所述新请求,并在拦截后拒绝所述新请求或转发所述新请求。

可选的,还包括:

根据注册的业务逻辑,对应所述业务逻辑创建线程。

可选的,还包括:

通过对外的接口,获取注册的业务逻辑。

可选的,还包括:

注册并存储回调线程,以便接收到关闭指令后,通过所述回调线程获取未启动的线程。

本实施例中的具体内容可以参见上述实施例中的相关描述,在此不再赘述。

本实施例中,通过未启动的线程全部执行完毕后再关闭终端,可以避免强制关机引起的问题,提高交互友好性、避免脏数据的产生,避免数据丢失等。进一步的,通过拦截新请求并拒绝或转发,相对于等待超时的方式,可以进一步提高友好性。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式 或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且, 描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1