CN110442467A - 一种数据共享方法及终端、计算机可读存储介质 - Google Patents

一种数据共享方法及终端、计算机可读存储介质 Download PDF

Info

Publication number
CN110442467A
CN110442467A CN201910538814.3A CN201910538814A CN110442467A CN 110442467 A CN110442467 A CN 110442467A CN 201910538814 A CN201910538814 A CN 201910538814A CN 110442467 A CN110442467 A CN 110442467A
Authority
CN
China
Prior art keywords
data
content provider
target process
data sharing
sharing
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
Application number
CN201910538814.3A
Other languages
English (en)
Other versions
CN110442467B (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201910538814.3A priority Critical patent/CN110442467B/zh
Publication of CN110442467A publication Critical patent/CN110442467A/zh
Application granted granted Critical
Publication of CN110442467B publication Critical patent/CN110442467B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例公开了一种数据共享方法及终端、计算机可读存储介质,包括:通过数据共享接口接收数据被分享应用的数据共享请求,提取数据共享请求中内容提供器的名称,在数据待分享应用中寻找内容提供器;当内容提供器不存在时,启动内容提供器对应的目标进程,通过目标进程创建内容提供器,并记录启动时间;启动时间为从启动目标进程开始至得到内容提供器的时间;当启动时间超过预设时间阈值,表征目标进程存在异常,强制停止目标进程,结束数据共享。

Description

一种数据共享方法及终端、计算机可读存储介质
技术领域
本申请涉及移动终端领域,尤其涉及一种数据共享方法及终端、计算机可读存储介质。
背景技术
随着智能终端的兴起,用户可以在智能终端上安装各种应用软件,以满足日常需求。目前的智能终端上的应用软件不仅可以对自身的数据进行处理,还可以从其他应用程序中获得数据进行处理。在Android系统中,内容提供器为应用间的数据共享提供了统一的接口,系统根据名称获得对应的内容提供器,并将内容提供器返回给应用以进行数据共享。
在使用内容提供器进行应用间的数据共享时,系统会先判断内容提供器是否存在,当系统判断出内容提供器不存在时,系统会启动内容提供器对应的进程,创建内容提供器。然而,当内容提供器所对应的进程卡死时,会使得系统一直处于等待状态,进而使得终端处于卡死状态,出现白屏现象或弹出应用未响应对话框,且即使重新启动应用,还是会通过已经卡死的进程来创建内容提供器,还是会进入卡死状态。
发明内容
本申请提供一种数据共享方法及终端、计算机可读存储介质,能够在内容提供器对应的进程出现异常时,强制停止目标进程,使得终端不会因为进程异常出现白屏或弹出应用未响应对话框。
本申请的技术方案是这样实现的:
第一方面,本申请实施例提供了一种数据共享方法,包括:
通过数据共享接口接收数据被分享应用的数据共享请求,提取所述数据共享请求中内容提供器的名称,在数据待分享应用中寻找所述内容提供器;
当所述内容提供器不存在时,启动所述内容提供器对应的目标进程,通过所述目标进程创建所述内容提供器,并记录启动时间;所述启动时间为从启动所述目标进程开始至得到所述内容提供器的时间;
当所述启动时间超过预设时间阈值,表征所述目标进程存在异常,强制停止所述目标进程,结束数据共享。
在上述方案中,在所述当所述内容提供器不存在时,启动所述内容提供器对应的目标进程,通过所述目标进程创建所述内容提供器,并记录启动时间之后,所述当所述启动时间超过预设时间阈值,表征所述目标进程存在异常,强制停止所述目标进程之前,所述方法还包括:
在所述启动时间内,每隔预设告警时间间隔,判断是否获取到所述内容提供器;其中,所述预设告警时间间隔小于所述预设时间阈值;
当获取不到所述内容提供器时,向所述数据被分享应用传输暂停等待告警,以及向所述数据待分享应用传输进程检测告警;
当所述数据被分享应用接收到所述暂停等待告警后,暂停所述数据被分享应用的等待过程;
当所述数据待分享应用接收到所述进程检测告警后,检查所述目标进程是否存在故障,当存在所述故障时进行修复。
在上述方案中,在所述通过数据共享接口接收数据被分享应用的数据共享请求,提取所述数据共享请求中内容提供器的名称,在数据待分享应用中寻找所述内容提供器之后,所述方法还包括:
当所述内容提供器存在时,通过所述数据共享接口将寻找到的所述内容提供器内的共享数据返回给所述数据被分享应用,实现数据共享。
在上述方案中,所述当所述启动时间超过所述预设时间阈值,表征所述目标进程存在异常,强制停止所述目标进程,结束数据共享之后,所述方法还包括:
判断所述目标进程是否为常驻进程;
当所述目标进程为所述常驻进程时,自动进行所述目标进程的重新启动,并通过重新启动后的所述目标进程继续进行数据共享流程;
当所述目标进程不为所述常驻进程时,接收启动指令,响应所述启动指令重新启动所述目标进程,并通过重新启动后的所述目标进程继续进行数据共享流程。
在上述方案中,在所述当所述内容提供器不存在时,启动所述内容提供器对应的目标进程,通过所述目标进程创建所述内容提供器,并记录启动时间之后,所述当所述启动时间超过预设时间阈值,表征所述目标进程存在异常,强制停止所述目标进程之前,所述方法还包括:
将所述数据待分享应用的所述共享数据写入所述内容提供器。
在上述方案中,在所述启动时间内,每隔预设告警时间间隔,判断是否获取到所述内容提供器之后,所述方法还包括:
当获取到所述内容提供器时,通过所述数据共享接口将所述内容提供器内的所述共享数据返回给所述数据被分享应用,实现数据共享。
在上述方案中,在所述当所述内容提供器不存在时,启动所述内容提供器对应的目标进程,通过所述目标进程创建所述内容提供器,并记录启动时间之后,所述方法还包括:
当所述启动时间未超过预设时间阈值,通过所述数据共享接口将所述内容提供器的共享数据返回给所述数据被分享应用,实现数据共享。
第二方面,本申请实施例提供一种终端,包括:
接收单元,用于通过数据共享接口接收数据被分享应用的数据共享请求;
提取单元,用于提取所述数据共享请求中内容提供器的名称,在数据待分享应用中寻找所述内容提供器;
处理单元,用于当所述内容提供器不存在时,启动所述内容提供器对应的目标进程,通过所述目标进程创建所述内容提供器,并记录启动时间;所述启动时间为从启动所述目标进程开始至得到所述内容提供器的时间;当所述启动时间超过预设时间阈值,表征所述目标进程存在异常,强制停止所述目标进程,结束数据共享。
第三方面,本申请实施例还提供了一种终端,包括:存储器及处理器;
所述存储器,用于存储可执行数据共享指令;
所述处理器,用于执行所述存储器中存储的可执行数据共享指令,实现上述第一方面任一项所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,存储有可执行数据共享指令,用于引起处理器执行时,实现上述第一方面任一项所述的方法。
采用上述实现方式,终端中的数据被分享应用与数据待分享应用进行数据共享时,终端能够根据内容提供器的名称寻找对应的内容提供器,当内容提供器不存在,启动内容提供器对应的目标进程创建相应的内容提供器,并对启动时间进行监控,当启动时间超过预设的时间阈值时,强制停止内容提供器对应的进程,使得终端不会因为进程异常出现白屏现象或是弹出应用为响应对话框,避免终端进入卡死状态。
附图说明
图1为本申请实施例提供的一种数据共享方法的流程图一;
图2为本申请实施例提供的一种数据共享方法的流程图二;
图3为本申请实施例提供的一种数据共享方法的流程图三;
图4为本申请实施例提供的一种数据共享方法的流程图四;
图5为本申请实施例提供的一种终端的结构示意图一;
图6为本申请实施例提供的一种终端的结构示意图二;
图7为本申请实施例提供的一种终端的组成结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
实施例一
本申请实施例提供一种数据共享方法,参见图1,该方法可以包括:
S101、通过数据共享接口接收数据被分享应用的数据共享请求,提取数据共享请求中内容提供器的名称,在数据待分享应用中寻找内容提供器。
本申请实施例提供的一种数据共享方法是在利用终端进行应用软件间的数据共享的场景下实现的。当终端中的数据被分享应用存在与其他数据待分享应用进行数据共享的需求时,会根据装载有数据被分享应用所需要的共享数据的内容提供器的名称,生成数据共享请求,接着数据被分享应用会调用终端的数据共享接口,通过数据共享接口向终端发送数据共享请求,终端接收到该数据共享请求之后,会对该数据共享请求进行解析,从数据共享请求中提取内容提供器的名称,之后,终端会在数据待分享应用中寻找该内容提供器。
本发明实施例中,内容提供器是一种可以实现应用间数据共享的系统组件,内容提供器可以存储数据待分享应用的共享数据,并对其他数据被分享应用提供数据共享接口,数据被分享应用可以通过调用该数据共享接口,获得数据待分享应用的共享数据。
可以理解的是,数据被分享应用和数据待分享应用,可以是安装于终端中的任意两个应用软件。
需要说明的是,本申请实施例中,终端可以是智能手机、平板电脑等搭载有智能操作系统的终端,本申请实施例在此不作具体限定。
在本申请的一些实施例中,终端上搭载的智能操作系统可以是Android操作系统,本申请实施例在此不作限定。
需要说明的是,本申请实施例中的数据共享请求,可以用统一资源标识符(Uniform Resource Identifier,URI)来表示。URI可以为内容提供器添加唯一的标识符,使得终端可以根据该标识符,在数据待分享应用中寻找到对应的内容提供器。
在本申请的一些实施例中,数据被分享应用可以直接调用预置在终端中的 URI,来生成数据共享请求,还可以自定义URI,来生成数据共享请求,本申请实施例在此不作具体限定。
在本申请的一些实施例中,数据共享请求中除了可以包括内容提供器的标识符之外,还可以包括共享数据的信息等内容,本申请实施例在此不作限定。
S102、当内容提供器不存在时,启动内容提供器对应的目标进程,通过目标进程创建内容提供器,并记录启动时间;启动时间为从启动目标进程开始至得到内容提供器的时间。
终端在接收到数据共享请求之后,会根据数据共享请求中内容提供器的唯一标识符,在数据待分享应用中逐个寻找该标识符所对应的内容提供器。当终端在数据待分享应用中寻找不到内容提供器时,终端会启动内容提供器对应的目标进程,并通过该目标进程创建所需要的内容提供器。终端在启动目标进程的同时,还会记录从启动目标进程开始,到终端通过目标进程完成创建并得到内容提供器所需要的时间,即启动时间,以便于后续判断启动时间是否超过了预设时间阈值。
可以理解的是,本申请实施例中,每个内容提供器都会有与之唯一对应的目标进程,终端可以通过与内容提供器唯一对应的目标进程,创建所需要的内容提供器。
需要说明的是,终端通过目标进程所创建的内容提供器,可以用表格的形式组织数据,还可以用文件的形式组织数据,或是用其他形式组织数据,具体组织数据的形式可以根据实际需求自行确定,本申请实施例不作具体限定。
本申请实施例中,终端通过目标进程创建内容提供器时,需要先自定义内容提供器类,然后注册所创建的内容提供器类,得到所创建的内容提供器。
在本申请的一些实施例中,内容提供器所需要的数据库类,可以是轻型数据库,也可以是其他类型的数据库,本申请实施例在此不作具体限定。
S103、当启动时间超过预设时间阈值,表征目标进程存在异常,强制停止目标进程,结束数据共享。
当终端判断出启动时间超过了预设时间阈值时,表明终端通过目标进程一直未能将内容提供器创建出来,目标进程极有可能出现了异常,此时,若继续使用该目标进程进行内容提供器的创建,终端是无法成功创建并获得内容提供器的,也就无法将内容提供器中的共享数据返回给数据被分享应用,而数据被分享应用由于一直无法得到所需要的共享数据,会陷入长时间的等待状态,出现白屏或应用未响应(Application Not Responding,ANR)问题。因此,终端需要在判断出启动时间超过预设时间阈值时,及时强制停止目标进程,结束数据共享操作,避免数据被分享应用因为得不到共享数据陷入长时间的等待状态。
需要说明的是,预设时间阈值是用来衡量创建内容提供器的目标进程是否出现异常的。在本申请的一些实施例中,具体的预设时间阈值可以根据实际需求进行设定,本申请实施例在此不作具体限定。
示例性的,终端可以将预设时间阈值设定为20s,当终端判断启动时间没有超过20s时,即在20s之内终端通过目标进程顺利地将内容提供器创建出来,表明目标进程正常。
本申请实施例中,目标进程存在异常可以是指进程卡死等异常,也可以是指其他类型的进程异常,本申请实施例在此不作限定。
示例性的,终端可以将预设时间阈值设置为20s,当终端判断出启动时间超过20s时,表明终端在20s之内没能通过目标进程创建出所需要的内容提供器,目标进程发生了异常,终端将会强制停止目标进程,结束数据共享。
示例性的,本申请实施例提供了一种数据共享方法的实现示例。在该数据共享方法中,终端搭载有Android操作系统,数据被分享应用为美图秀秀APP,数据待分享应用为相册APP,美图秀秀APP需要从相册APP获得图像,以便于美图秀秀APP对图像进行美化处理。美图秀秀APP向终端传输包含有内容提供器ContentProvider的名称的数据共享请求,终端的活动管理服务(Activity Manager Service,AMS)通过数据共享接口getContentProvider接口接收该数据共享请求,接着,终端的AMS会将数据共享请求进行解析,得到ContentProvider 的名称,并根据ContentProvider的名称,在相册APP中寻找相应的ContentProvider。当终端的AMS找不到ContentProvider时,终端的AMS会启动ContentProvider对应的目标进程,并等待目标进程创建完成并返回ContentProvider,在目标进程启动的同时,终端AMS开始记录启动时间。当终端AMS在20s之后还没有获得ContentProvider,即启动时间已经超过了20s,终端AMS会将目标进程强制停止,结束数据共享操作。
本申请实施例中,终端中的数据被分享应用与数据待分享应用进行数据共享时,终端能够根据内容提供器的名称寻找对应的内容提供器,当内容提供器不存在,启动内容提供器对应的目标进程创建相应的内容提供器,并对启动时间进行监控,当启动时间超过预设的时间阈值时,强制停止内容提供器对应的进程,使得终端不会因为进程异常出现白屏现象或是弹出应用为响应对话框,避免终端进入卡死状态。
实施例二
基于与实施例一的同一发明构思,基于图1,参见图2,在实施例一当内容提供器不存在时,启动内容提供器对应的目标进程,通过目标进程创建内容提供器,并记录启动时间之后,当启动时间超过预设时间阈值,,表征所述目标进程存在异常,强制停止所述目标进程之前,即实施例一S102之后,S103之前,该方法还可以包括:S104-S107,如下:
S104、在启动时间内,每隔预设告警时间间隔,判断是否获取到内容提供器;其中,预设告警时间间隔小于预设时间阈值。
终端在启动目标进程创建相应的内容提供器时,会记录启动时间,并在所记录的启动时间之内,每隔一个预设告警时间间隔,对内容提供器的获取情况进行一次判断,由此来判断终端是否通过目标进程将内容提供器创建成功,当终端没有获取到内容提供器时,终端可以向数据被分享应用和数据待分享应用发送告警。
需要说明的是,本申请实施例中的预设告警时间间隔是要小于预设时间阈值的,这是因为当终端判断出启动时间超过预设时间阈值时且未获取到内容提供器时,终端会强制停止目标进程,也就不再需要向数据被分享应用和数据待分享应用发送告警,
本申请的一些实施例中,预设时间告警间隔可以设置为等间隔的,也可以设置为不等间隔的,具体预设告警时间间隔可以根据实际情况来确定,本申请实施例在此不作具体限定。
示例性的,本申请实施例中的预设告警时间间隔,可以等用5s进行等间隔设置,即终端在启动时间内,每隔5s判断一次是否获得了通过目标进程所创建的内容提供器,当没有获得内容提供器时,终端会向数据被分享应用和数据待分享应用发送告警。
示例性的,本申请实施例中的预设告警时间间隔,还可以采用第一次以5s 作为预设告警时间间隔,第二次以4s作为预设告警时间间隔,第三次以4s作为预设告警时间阈值等进行设定,直至将预设时间间隔分配完毕。此时,终端在启动时间内,终端可以先过5s判断一次是否获得了内容提供器,没有获得时发送告警,之后,终端再过4s判断一次是否获得了内容提供器,在没有获得时发送告警,以此类推,直至将预设时间间隔分配完毕。
S105、当获取不到内容提供器时,向数据被分享应用传输暂停等待告警,以及向数据待分享应用传输进程检测告警。
当终端在启动时间内,按照预设时间间隔判断出终端未获取到所需要的内容提供器时,终端会向数据被分享应用传输暂停等待告警,向数据待分享应用传输进程检测告警,以使得数据被分享应用暂停等待,数据待分享应用对目标进程进行检测,检查目标进程是否存在故障。
S106、当通过数据被分享应用获取到暂停等待告警后,暂停数据被分享应用的等待过程。
由于终端在创建内容提供器时,数据被分享应用会处于等待过程,因而当终端通过数据被分享应用获取到暂停等待告警之后,终端会判断数据被分享应用当前是否可以暂停等待,如果可以暂停等待,终端会暂停数据被分享应用从内容提供器中获得共享数据的等待过程。
S107、当通过数据待分享应用获取到进程检测告警后,检查目标进程是否存在故障,当存在故障时进行修复。
当终端通过数据待分享应用获取到进程检测告警之后,终端会按照进程检测告警的指示,对内容提供器所对应的目标进程进行故障检测,当检测到目标进程存在故障时,会对所检测到的故障进行修复。
需要说明的是,在本申请的一些实施例中,对目标进程进行故障检测时,可以是检测目标进程是否存在卡死现象,也可以是对目标进程的其他故障进行检测,本申请实施例在此不作限定。
需要说明的是,本发明实施例中,S106与S107是在S105之后可选的两个实现过程,具体可以根据实际情况来选择所要执行的过程。
在本申请的一些实施例中,在启动时间内,每隔预设告警时间间隔,判断是否获取到内容提供器,即实施例二S104之后,该方法还可以包括:S108,如下:
S108、当获取到内容提供器时,通过数据共享接口将内容提供器内的共享数据返回给数据被分享应用,实现数据共享。
终端在启动时间内,如果在某一个预设告警时间间隔之内,获取到了内容提供器,此时,终端就不需要再向数据被分享应用和数据待分享应用发送告警,而是直接对内容提供器中的共享数据进行提取,并将所提取到的共享数据返回给数据被分享应用,正常进行数据共享。
本申请实施例中,终端能够在启动时间内,每个一个预设告警时间间隔判断一次终端是否获取到了内容提供器,在获取到内容提供器时,终端便正常地进行数据共享流程,在终端获取不到内容提供器时,能够向数据被分享应用发送暂停等待告警,使得数据被分享应用能够先暂停对共享数据的等待,并向数据待分享应用发送进程检测告警,使得数据待分享应用检测并修复进程的故障,进一步地避免因为进程异常而使终端进入卡死状态,出现白屏现象或是弹出未响应对话框。
在本申请的一些实施例中,如图3所示,在通过数据共享接口接收数据被分享应用的数据共享请求,提取数据共享请求中内容提供器的名称,在数据待分享应用中寻找内容提供器之后,即实施例一S101之后,该方法还包括:S109,如下:
S109、当内容提供器存在时,通过数据共享接口将寻找到的内容提供器内的共享数据返回给数据被分享应用,实现数据共享。
终端在通过数据共享接口接收到数据共享请求之后,会根据数据共享请求中的内容提供器的名称,在数据待分享应用中寻找内容提供器。当终端寻找到内容提供器时,表明该内容提供器是已经被目标进程是已经存在的,此时,终端就不需要通过目标进程再次创建新的内容提供器了,而是可以直接使用已经存在内容提供器,将已经存在的内容提供器中的共享数据提取处理,并通过数据共享接口返回给数据被分享应用,实现数据共享。
需要说明的是,由于终端在通过目标进程完成内容提供器的创建,并利用所创建的内容提供器完成数据共享之后,是不会将内容提供器删除的,因此,在数据被分享应用与数据待分享应用首次进行过数据共享之后,终端所使用的内容提供器会被保留,以便于下次同一数据被分享应用与待分享应用可以直接利用该内容提供器进行数据共享。
需要说明的是,本发明实施例中,S109与S102-S103是在S101之后的可选的两个实现过程,具体的可以根据实际情况来选择所要执行的过程。
示例性的,本申请实施例提供了一种数据共享方法的实现实例。在该方法中,终端搭载有Android操作系统,数据被分享应用为微信APP,数据待分享应用为通讯录APP,微信APP需要从通讯录APP中获得某联系人的联系电话,此时,微信APP向终端传输包含有内容提供器ContentProvider的名称的数据共享请求,终端的AMS接收到数据共享请求之后,会从数据共享请求中获得 ContentProvider的名称,并根据该名称,从通讯录APP中寻找到了对应 ContentProvider,之后,终端AMS将所寻找到的ContentProvider中的联系电话提取处理,并通过数据共享接口getContentProvider接口返回给微信APP,以使微信APP能够对联系电话进行编辑等处理。
本申请实施例中,终端可以在通过内容提供器的名称,寻找到内容提供器时,直接将内容提供器中的共享数据返回给数据被分享应用,使得数据被分享应用获得数据待分享应用的共享数据,实现数据共享。
实施例三
基于与实施例一的同一发明构思,基于图1,参见图4,在当启动时间超过预设时间阈值,表征目标进程存在异常,强制停止目标进程,结束数据共享之后,即实施例一S103之后,该方法还包括:S110-S112,如下:
S110、判断目标进程是否为常驻进程。
终端在强制停止目标进程之后,由于是终端主动停止进程,在后续进行数据共享流程时,还需要再将目标进程启动,才能正常进行数据共享操作。然而,在终端中,存在着一类能够一直运行于终端之中的常驻进程,因此,终端需要先判断目标进程是否为常驻进程,并根据判断结果来确定是否需要重新启动目标进程。
需要说明的是,常驻进程是指可以在终端的内存中永远存在的进程,即使常驻进程被强制停止,也会在终端后续的运行过程中自动重新启动。
S111、当目标进程为常驻进程时,自动进行目标进程的重新启动,并通过重新启动后的目标进程继续进行数据共享流程。
当终端判断出目标进程为常驻进程时,由于常驻进程可以一直存在与终端之中,因而,终端不需要接收其他指令就可以自动进行目标进程的重新启动。在目标进程重新启动后,终端就可以根据重新启动后的目标进程,来创建相应的内容提供器,并记录重新启动的目标进程创建内容启动器所对应的启动时间,根据启动时间与预设时间阈值的关系,来确定是需要将重新启动后的目标进程强制停止,还是将有重新启动后的内容提供器中的共享数据返回给数据被分享应用。
S112、当目标进程不为常驻进程时,接收启动指令,响应启动指令,重新启动目标进程,并通过重新启动后的目标进程继续进行数据共享流程。
当终端判断出目标进程不为常驻进程时,终端接收启动指令,并响应所接收到的启动指令,主动将目标进程进行重启,并通过重启后的目标进程,来创建相应的内容提供器,继续进程数据共享流程。
需要说明的是,本申请实施例中,在终端将目标进程强制停止之后,终端已经结束了数据共享,然而数据被分享应用并没有得到其所需要的共享数据,因而,数据被分享应用可以向终端发送启动指令,以使终端响应所接收到的启动指令,重新启动目标进程并继续进行数据共享流程,进而使得数据被分享应用得到共享数据。
需要说明的是,本申请实施例中的S111与S112是在S110之后可选的两个实现过程,具体的可以根据实际情况来选择所要执行的过程。
本申请实施例中,终端可以判断强制停止的目标进程是否为常驻进程,当目标进程为常驻进程时自动重启目标进程,当目标进程不为常驻进程时根据启动指令重新启动目标进程,以使得无论目标进程是否为常驻进程,都能重新启动以继续数据共享流程,保证数据被分享应用于数据待分享应用之间的数据共享可以正常进行。
在本申请的一些实施例中,在当内容提供器不存在时,启动内容提供器对应的目标进程,通过目标进程创建内容提供器,并记录启动时间之后,当启动时间超过预设时间阈值,表征所述目标进程存在异常,强制停止所述目标进程,结束数据共享之前,即实施例一S102之后,S103之前,该方法还可以包括: S113,如下:
S113、将数据待分享应用的共享数据写入内容提供器。
终端在当内容提供器不存在,启动内容提供器对应的目标进程,并根据该目标进程创建内容提供器之后,还需要将数据待分享应用中的共享数据写入到内容提供器之中,以使得后续终端能够在内容提供器中提取到共享数据,并将共享数据返回给数据被分享应用中。
需要说明的是,本申请实施例中具体的将共享数据写入内容提供器的方法可以根据实际情况进行设置,只要能够达到将共享数据写入内容提供器的目的即可,本申请实施例在此不作具体限定。
本申请实施例中,终端在通过目标进程创建内容提供器之后,还能够将数据待分享应用的共享数据写入到内容提供器之中,以使得终端能够从内容提供器中提取出数据被分享应用所需要的共享数据,保证数据共享流程的正常进行。
在本申请的一些实施例中,在当所述内容提供器不存在时,启动内容提供器对应的目标进程,通过目标进程创建内容提供器,并记录启动时间之后,即实施例一S102之后,该方法还包括S114如下:
S114、当启动时间未超过预设时间阈值,通过数据共享接口将内容提供器的共享数据返回给数据被分享应用,实现数据共享。
终端判断出启动时间未超过预设时间阈值时,表明目标进程并没有发生异常,终端通过目标进程成功地将所需要的内容提供器创建出来,并获取到了通过目标进程所创建的内容提供器。此时,终端会将内容提供器中的共享数据提取出来,并通过数据共享接口,将共享数据返回给数据被分享应用,以实现数据待分享应用与数据被分享应用之间的数据共享。
可以理解的是,本申请实施例中,内容提供器中的共享数据是数据待分享应用中可以进行共享的数据,终端在通过目标进程创建内容提供器时,将数据待分享应用中可以被共享的数据装载至内容提供器中,以使得终端可以通过内容提供器,进行数据被分享应用于数据待分享应用的数据共享。
在本申请的一些实施例中,共享数据可以通讯录数据,还可以是图像数据、视频数据等其他类型的数据,具体共享数据的类型可以根据实际需求进行设定,本申请实施例在此不作限定。
本申请实施例中,当终端通过目标进程创建相应的内容提供器时,还存在启动时间未超过预设时间阈值时,终端就将内容提供器创建好的情形,此时,终端会直接对内容提供器中的共享数据进行提取,并将共享数据返回给数据被分享应用,使得终端实现通过内容提供器进行数据共享。
实施例四
基于实施例一与实施例三的同一构思,如图5所示,本申请实施例提供了一种终端1,该终端1可以包括:
接收单元10,用于通过数据共享接口接收数据被分享应用的数据共享请求;
提取单元11,用于提取所述数据共享请求中内容提供器的名称,在数据待分享应用中寻找所述内容提供器;
处理单元12,用于当所述内容提供器不存在时,启动所述内容提供器对应的目标进程,通过所述目标进程创建所述内容提供器,并记录启动时间;所述启动时间为从启动所述目标进程开始至得到所述内容提供器的时间;当所述启动时间超过所述预设时间阈值,表征所述目标进程存在异常,强制停止所述目标进程,结束数据共享。
在本申请的一些实施例中,如图6所示,所述终端1还包括:检测单元13;
所述处理单元12,还用于在所述启动时间内,每隔预设告警时间间隔,判断是否获取到所述内容提供器;其中,所述预设告警时间间隔小于所述预设时间阈值;当获取不到所述内容提供器时,向所述数据被分享应用传输暂停等待告警,以及向所述数据待分享应用传输进程检测告警;以及当所述数据被分享应用接收到所述暂停等待告警后,暂停所述数据被分享应用的等待过程;
所述检测单元13,用于当数据待分享应用接收到所述进程检测告警后,检查所述目标进程是否存在故障,当存在所述故障时进行修复。
在本申请的一些实施例中,所述处理单元12,还用于当所述内容提供器存在时,通过所述数据共享接口将寻找到的所述内容提供器内的共享数据返回给所述数据被分享应用,实现数据共享。
在本申请的一些实施例中,所述接收单元11,还用于当所述目标进程不为所述常驻进程时,接收启动指令;
所述处理单元12,还用于判断所述目标进程是否为常驻进程;当所述目标进程为所述常驻进程时,自动进行所述目标进程的重新启动,并通过重新启动后的所述目标进程继续进行数据共享流程;以及响应所述启动指令重新启动所述目标进程,并通过重新启动后的所述目标进程继续进行数据共享流程。
在本申请的一些实施例中,所述处理单元12,还用于将所述数据待分享应用的所述共享数据写入所述内容提供器。
在本申请的一些实施例中,所述处理单元12,还用于当获取到所述内容提供器时,通过所述数据共享接口将所述内容提供器内的所述共享数据返回给所述数据被分享应用,实现数据共享。
在本申请的一些实施例中,所述处理单元12,还用于当所述启动时间未超过预设时间阈值,通过所述数据共享接口将所述内容提供器的共享数据返回给所述数据被分享应用,实现数据共享。
实施例五
基于实施例一与实施例三的同一构思,图7为本申请实施例提出的一种终端的组成结构示意图,如图7所示,本申请提出的一种终端可以包括处理器01、存储有处理器01可执行指令的存储器02。其中,处理器01用于执行存储器中存储的可执行数据共享指令,以实现实施例一至实施例三中任一个或多个实施例中的方法。
在本申请的实施例中,上述处理器01可以为特定用途集成电路(ApplicationSpecific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(ProgRAMmable Logic Device,PLD)、现场可编程门阵列(Field ProgRAMmable GateArray,FPGA)、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。该终端还包括存储器02,该存储器02可以与处理器01连接,其中,存储器02可能包含高速RAM存储器,也可能还包括非易失性存储器,例如,至少两个磁盘存储器。
在实际应用中,上述存储器02可以是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器 (non-volatilememory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器01提供指令和数据。
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供一种计算机可读存储介质,其上存储有可执行数据共享指令,应用于终端中,该程序被处理器执行时实现如实施例一至实施例三中任意一个或多个实施例中的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。

Claims (10)

1.一种数据共享方法,其特征在于,所述方法包括:
通过数据共享接口接收数据被分享应用的数据共享请求,提取所述数据共享请求中内容提供器的名称,在数据待分享应用中寻找所述内容提供器;
当所述内容提供器不存在时,启动所述内容提供器对应的目标进程,通过所述目标进程创建所述内容提供器,并记录启动时间;所述启动时间为从启动所述目标进程开始至得到所述内容提供器的时间;
当所述启动时间超过预设时间阈值,表征所述目标进程存在异常,强制停止所述目标进程,结束数据共享。
2.根据权利要求1所述的方法,其特征在于,在所述当所述内容提供器不存在时,启动所述内容提供器对应的目标进程,通过所述目标进程创建所述内容提供器,并记录启动时间之后,所述当所述启动时间超过预设时间阈值,表征所述目标进程存在异常,强制停止所述目标进程之前,所述方法还包括:
在所述启动时间内,每隔预设告警时间间隔,判断是否获取到所述内容提供器;其中,所述预设告警时间间隔小于所述预设时间阈值;
当获取不到所述内容提供器时,向所述数据被分享应用传输暂停等待告警,以及向所述数据待分享应用传输进程检测告警;
当通过所述数据被分享应用获取到所述暂停等待告警后,暂停所述数据被分享应用的等待过程;
当通过所述数据待分享应用获取到所述进程检测告警后,检查所述目标进程是否存在故障,当存在所述故障时进行修复。
3.根据权利要求1所述的方法,其特征在于,在所述通过数据共享接口接收数据被分享应用的数据共享请求,提取所述数据共享请求中内容提供器的名称,在数据待分享应用中寻找所述内容提供器之后,所述方法还包括:
当所述内容提供器存在时,通过所述数据共享接口将寻找到的所述内容提供器内的共享数据返回给所述数据被分享应用,实现数据共享。
4.根据权利要求1所述的方法,其特征在于,所述当所述启动时间超过所述预设时间阈值,表征所述目标进程存在异常,强制停止所述目标进程,结束数据共享之后,所述方法还包括:
判断所述目标进程是否为常驻进程;
当所述目标进程为所述常驻进程时,自动进行所述目标进程的重新启动,并通过重新启动后的所述目标进程继续进行数据共享流程;
当所述目标进程不为所述常驻进程时,接收启动指令,响应所述启动指令重新启动所述目标进程,并通过重新启动后的所述目标进程继续进行数据共享流程。
5.根据权利要求1所述的方法,其特征在于,在所述当所述内容提供器不存在时,启动所述内容提供器对应的目标进程,通过所述目标进程创建所述内容提供器,并记录启动时间之后,所述当所述启动时间超过预设时间阈值,表征所述目标进程存在异常,强制停止所述目标进程,结束数据共享之前,所述方法还包括:
将所述数据待分享应用的所述共享数据写入所述内容提供器。
6.根据权利要求2所述的方法,其特征在于,在所述启动时间内,每隔预设告警时间间隔,判断是否获取到所述内容提供器之后,所述方法还包括:
当获取到所述内容提供器时,通过所述数据共享接口将所述内容提供器内的所述共享数据返回给所述数据被分享应用,实现数据共享。
7.根据权利要求1所述的方法,其特征在于,在所述当所述内容提供器不存在时,启动所述内容提供器对应的目标进程,通过所述目标进程创建所述内容提供器,并记录启动时间之后,所述方法还包括:
当所述启动时间未超过预设时间阈值,通过所述数据共享接口将所述内容提供器的共享数据返回给所述数据被分享应用,实现数据共享。
8.一种终端,其特征在于,所述终端包括:
接收单元,用于通过数据共享接口接收数据被分享应用的数据共享请求;
提取单元,用于提取所述数据共享请求中内容提供器的名称,在数据待分享应用中寻找所述内容提供器;
处理单元,用于当所述内容提供器不存在时,启动所述内容提供器对应的目标进程,通过所述目标进程创建所述内容提供器,并记录启动时间;所述启动时间为从启动所述目标进程开始至得到所述内容提供器的时间;当所述启动时间超过预设时间阈值,表征所述目标进程存在异常,强制停止所述目标进程,结束数据共享。
9.一种终端,其特征在于,所述终端包括:存储器及处理器;
所述存储器,用于存储可执行数据共享指令;
所述处理器,用于执行所述存储器中存储的可执行数据共享指令,实现权利要求1-7所述的方法。
10.一种计算机可读存储介质,其特征在于,存储有可执行数据共享指令,用于引起处理器执行时,实现权利要求1-7任一项所述的方法。
CN201910538814.3A 2019-06-20 2019-06-20 一种数据共享方法及终端、计算机可读存储介质 Active CN110442467B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910538814.3A CN110442467B (zh) 2019-06-20 2019-06-20 一种数据共享方法及终端、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910538814.3A CN110442467B (zh) 2019-06-20 2019-06-20 一种数据共享方法及终端、计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110442467A true CN110442467A (zh) 2019-11-12
CN110442467B CN110442467B (zh) 2023-02-03

Family

ID=68429469

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910538814.3A Active CN110442467B (zh) 2019-06-20 2019-06-20 一种数据共享方法及终端、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110442467B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117743445A (zh) * 2024-02-18 2024-03-22 荣耀终端有限公司 一种数据访问方法及电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353101A (ja) * 1999-06-11 2000-12-19 Nec Corp データ共有管理装置およびデータ共有管理方法
US20140095637A1 (en) * 2012-10-02 2014-04-03 Tanner Cropper System for sharing and tracking review of rich content, and methods associated therewith
CN103942110A (zh) * 2013-01-17 2014-07-23 腾讯科技(深圳)有限公司 一种数据共享及同步的方法和系统
CN104348895A (zh) * 2013-08-09 2015-02-11 腾讯科技(深圳)有限公司 移动终端中程序间共享数据的方法及装置
US20150149736A1 (en) * 2013-11-22 2015-05-28 Yong Sik Kwon Fast restart of applications using shared memory
CN106028125A (zh) * 2016-05-17 2016-10-12 乐视控股(北京)有限公司 一种多媒体分享方法和装置
WO2018019236A1 (zh) * 2016-07-27 2018-02-01 北京金山安全软件有限公司 一种分享应用程序的方法、装置及电子设备
CN108664609A (zh) * 2018-05-10 2018-10-16 中国银行股份有限公司 一种数据共享的方法、网络设备及终端
CN109144692A (zh) * 2018-07-16 2019-01-04 北京奇虎科技有限公司 一种用于分配进程的方法、装置及终端

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353101A (ja) * 1999-06-11 2000-12-19 Nec Corp データ共有管理装置およびデータ共有管理方法
US20140095637A1 (en) * 2012-10-02 2014-04-03 Tanner Cropper System for sharing and tracking review of rich content, and methods associated therewith
CN103942110A (zh) * 2013-01-17 2014-07-23 腾讯科技(深圳)有限公司 一种数据共享及同步的方法和系统
CN104348895A (zh) * 2013-08-09 2015-02-11 腾讯科技(深圳)有限公司 移动终端中程序间共享数据的方法及装置
US20150149736A1 (en) * 2013-11-22 2015-05-28 Yong Sik Kwon Fast restart of applications using shared memory
CN106028125A (zh) * 2016-05-17 2016-10-12 乐视控股(北京)有限公司 一种多媒体分享方法和装置
WO2018019236A1 (zh) * 2016-07-27 2018-02-01 北京金山安全软件有限公司 一种分享应用程序的方法、装置及电子设备
CN108664609A (zh) * 2018-05-10 2018-10-16 中国银行股份有限公司 一种数据共享的方法、网络设备及终端
CN109144692A (zh) * 2018-07-16 2019-01-04 北京奇虎科技有限公司 一种用于分配进程的方法、装置及终端

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
KAIYING FENG等: "Improving availability and confidentiality of shared data under the multi-cloud environment", 《IEEE XPLORE》 *
吴宇昊: "基于C/S架构与Android平台的智能快递柜系统设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
徐克等: "VxWorks 653分区进程间大数据共享方法研究", 《测控技术》 *
谢景海: "Android平台在机顶盒上的移植与设计", 《中国优秀硕士论文全文数据库 信息科技辑》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117743445A (zh) * 2024-02-18 2024-03-22 荣耀终端有限公司 一种数据访问方法及电子设备

Also Published As

Publication number Publication date
CN110442467B (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
US20120102580A1 (en) Out Of Band Vital Product Data Collection
KR20170068373A (ko) 메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법
CN113407383B (zh) 主备系统切换方法、装置、服务器及主备系统
CN111258470B (zh) 一种用于呈现社交消息的方法与设备
CN112306411B (zh) 数据存储方法及装置、非易失性存储介质、处理器
CN105094811A (zh) 一种事件处理的方法和装置
CN109302445A (zh) 主机节点状态确定方法、装置、主机节点及存储介质
US9513983B2 (en) Method for maintaining file system of computer system
CN108376110A (zh) 一种自动检测方法、系统及终端设备
CN104639666B (zh) 域名访问方法及装置
WO2020000783A1 (zh) 通讯录云处理方法、装置、计算机设备及可读存储介质
CN105205160A (zh) 一种数据写入方法及装置
CN110442467A (zh) 一种数据共享方法及终端、计算机可读存储介质
CN109922014B (zh) 一种交换机冷热启动判断方法及系统
CN104504348B (zh) 一种基于高可用存储系统的数据保护方法
CN108985402B (zh) 一种raid卡信息获取方法及相关装置
CN110798347B (zh) 服务状态检测方法、装置、设备及存储介质
CN108829455A (zh) 一种设备标识获取方法、装置及设备
JP2002108698A (ja) メモリ管理システム及びメモリ管理方法
CN113220510A (zh) 设备检测方法、检测设备和计算机可读存储介质
CN107885575B (zh) 虚拟机的迁移方法及装置
RU2010131947A (ru) Усовершенствованная система сервера контроля присутствия
CN110727945A (zh) 病毒扫描方法、设备以及计算机可读介质
CN110377467A (zh) 服务器开机过程的故障定位方法、装置、设备及存储介质
CN112148513A (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