intent. setAction ("yes. test, action")
[0099] Uri data = Uri. parse (^ycsschema: //yes. test/subath ? msg = helloworld")
[0100] intent. setData(data)
[0101] 在本发明实施例中,在控制信息中预置启动目标应用程序的启动逻辑信息,用于 请求信息控制中心发起对目标应用程序重启的操作。启动目标应用程序的启动逻辑信息源 代码如下:
[0102] try{startActivity (intent)}
[0103] catch (Exception e){Toast. makeText(ApplicationJumpFromActivity. this," 目的地程序未安装〃,Toast. LENGTH_L0NG) · show ()}
[0104] 在本发明实施例中,当判断出目标应用程序处于停止运行状态时,守护应用程序 向信息控制中心发送启动目标应用程序的启动装载信息和启动目标应用程序的启动逻辑 信息,请求信息控制中心重启目标应用程序。
[0105] S305,信息控制中心根据所述重启请求发起对目标应用程序的重启操作。
[0106] 在本发明实施例中,信息控制中心根据守护应用程序发送的重启目标应用程序的 重启请求,发起目标应用程序的重启操作,等待目标应用程序的响应。重启操作中携带的信 息包括启动目标应用程序的启动装置信息。
[0107] S306,接收信息控制中心发送的重启信息。
[0108] 在本发明实施例中,在目标应用程序中预置被控信息。守护目标应用程序启动的 守护应用程序可以有多个,在被控信息中预置守护应用程序的信息,以使目标应用程序获 知将会被哪些守护应用程序启动守护。守护应用程序的信息包括守护应用程序的安装包标 识。
[0109] 相应的,会在被控信息中预置启动装载信息的参数和格式,用于与重启信息中的 启动目标应用程序的装载信息匹配。
[0110] 作为本发明实施例的一个实施例,启动装载信息的参数包括action和data,其中 action声明了定义好的行为,data声明了通过这种行为进行参数的传递。在本发明实施例 中,被控信息中预置的启动装载信息的参数和格式的源代码如下:
[0111] <intent-filter> <action android:name="android.inteiit,aetioii.K4AIN'! /> <action android:name="ycs.test.action" /> <category and3Oid:naiT]e="android.intent:.category,DEFAULT" /> <!-<Gategory android:name=+'mdrGidintentxatggory.LAUNCHER(' /> <data android:scheme="ycsschema" andiOid:path="ycs.test/subath"/> </intent-filter>
[0112] S307,若信息控制中心发送的重启信息与被控信息匹配,则目标应用程序重新启 动。
[0113] 在本发明实施例中,若信息控制中心发起的重启操作中包含的启动目标应用程序 的启动装载信息的参数和格式,与被控信息中的启动装载信息的参数和格式向匹配,则目 标应用程序根据信息控制中心的重启操作重启,否则目标应用程序不响应信息控制中心的 重启操作。
[0114] 本发明实施例通过检测目标应用程序的运行状态,当目标应用程序停止运行时, 守护应用程序向信息控制中心发送重启目标应用程序的重启请求,信息控制中心根据重启 请求发起目标应用程序的重启操作,若重启操作中携带的信息与被控信息匹配,则目标应 用程序重启,从而实现了守护应用程序守护监听目标应用程序,保护目标应用程序在被强 制退出后重启。
[0115] 图6示出了本发明实施例提供的应用程序启动保护装置的结构示意图,该装置包 括:检测请求发送单元41、运行状态判断单元42以及重启请求发送单元43,其中:
[0116] 检测请求发送单元41,向信息控制中心发送检测目标应用程序运行状态的检测请 求。
[0117] 作为本发明的一个实施例,检测请求发送单元41包括:检测条件判断模块411、检 测请求发送模块412,其中:
[0118] 检测条件判断模块411,判断发送检测请求的检测条件是否满足。
[0119] 检测请求发送模块412,当检测条件判断模块411判断发送检测请求的检测条件 满足时,向信息控制中心发送检测目标应用程序运行状态的检测请求。
[0120] 在本发明实施例中,在控制信息中预置检测条件,当检测条件满足时启动对目标 应用程序运行状态的检测请求。例如可以设定检测时间阈值,检测时间阈值可以根据需求 设定,如1分钟、半小时等。
[0121] 作为本发明的一个实施例,一个目标应用程序也可以被多个守护应用程序守护, 当有多个守护应用程序保护目标应用程序启动时,检测请求发送单元41还包括:检测条件 设定模块413,其中:
[0122] 检测条件设定模块413,根据预设的优先级确认所述检测条件,该优先级可以根据 应用程序的文件大小和活跃度中的至少一种确定。
[0123] 在本发明实施例中,多个守护应用程序分别向信息控制中心发送检测目标应用程 序的运行状态检测请求;其中,发送检测请求的检测条件可以根据守护应用程序的优先级 确定。例如,检测条件可以是检测时间阈值,优先级较高的守护应用程序中,检测时间阈值 可以设置的短些,这样发送检测请求的频率较高,从而保护目标应用程序在被强制退出后 快速重启。优先级较低的守护应用程序中,检测时间阈值可以设置的稍长些,这样发送检测 请求的频率较低,防止发送过多的检测请求,浪费系统资源,同时保证目标应用程序在被强 制退出后能在一定的时间内重新启动。
[0124] 在本发明实施例中,可以根据应用程序的文件大小和活跃度中的至少一种来确定 守护应用程序的优先级。例如,应用程序的文件越大优先级越低,反之,文件越小优先级越 高;活跃度越低优先级越低,反之则活跃度越高优先级越高。其中,活跃度可以根据用户使 用应用程序的频率或时长来确定。用户使用应用程序的频率越高或时间越长,该应用程序 的活跃度越高,反之则活跃度越低。
[0125] 作为本发明的一个实施例,检测请求发送单元41还包括:检测条件调整模块414, 其中:
[0126] 检测条件调整模块414,可以根据所述目标应用程序停止运行的频率调整所述检 测条件。
[0127] 在本发明实施例中,可以统计目标应用程序的运行状态为停止运行的频率,该频 率为目标应用程序的运行状态为停止运行的次数与信息控制中心返回的目标应用程序的 运行状态的总次数的比值。检测条件可以根据需求来设定,具体的,可以根据所述频率来调 整。若检测条件为检测时间阈值,假设预设的检测时间阈值为1小时,若所述频率增加,则 检测时间阈值缩短,如半小时;若所述频率下降,相应的检测时间阈值变长,如2小时。这样 既能保证目标应用程序在被强制退出后快速重启,又能防止发送过多的检测请求,浪费系 统资源。
[0128] 运行状态判断单元42,根据信息控制中心反馈的信息获取所述目标应用程序的运 行状态。
[0129] 在本发明实施例中,若信息控制中心反馈的是当前终端中所有应用程序的运行状 态信息,则守护应用程序在信息控制中心反馈的信息中查找目标应用程序的运行状态来获 取目标应用程序的运行状态;若信息控制中心反馈的是当前终端中处于正常运行状态的应 用程序信息,则守护应用程序比较目标应用程序的信息和信息控制中心反馈的信息,若目 标应用程序的信息不在信息控制中心反馈的信息中,则判断目标应用程序的运行状态为停 止运行。目标应用程序的信息包括应用程序安装包的标识。<