intent. setAction ("yes. test, action")
[0099] Uri data = Uri. parse (^ycsschema: //yes. test/subath ? msg = helloworld")
[0100] intent. setData(data)
[0101] 在本發(fā)明實(shí)施例中,在控制信息中預(yù)置啟動(dòng)目標(biāo)應(yīng)用程序的啟動(dòng)邏輯信息,用于 請(qǐng)求信息控制中心發(fā)起對(duì)目標(biāo)應(yīng)用程序重啟的操作。啟動(dòng)目標(biāo)應(yīng)用程序的啟動(dòng)邏輯信息源 代碼如下:
[0102] try{startActivity (intent)}
[0103] catch (Exception e){Toast. makeText(ApplicationJumpFromActivity. this," 目的地程序未安裝〃,Toast. LENGTH_L0NG) · show ()}
[0104] 在本發(fā)明實(shí)施例中,當(dāng)判斷出目標(biāo)應(yīng)用程序處于停止運(yùn)行狀態(tài)時(shí),守護(hù)應(yīng)用程序 向信息控制中心發(fā)送啟動(dòng)目標(biāo)應(yīng)用程序的啟動(dòng)裝載信息和啟動(dòng)目標(biāo)應(yīng)用程序的啟動(dòng)邏輯 信息,請(qǐng)求信息控制中心重啟目標(biāo)應(yīng)用程序。
[0105] S305,信息控制中心根據(jù)所述重啟請(qǐng)求發(fā)起對(duì)目標(biāo)應(yīng)用程序的重啟操作。
[0106] 在本發(fā)明實(shí)施例中,信息控制中心根據(jù)守護(hù)應(yīng)用程序發(fā)送的重啟目標(biāo)應(yīng)用程序的 重啟請(qǐng)求,發(fā)起目標(biāo)應(yīng)用程序的重啟操作,等待目標(biāo)應(yīng)用程序的響應(yīng)。重啟操作中攜帶的信 息包括啟動(dòng)目標(biāo)應(yīng)用程序的啟動(dòng)裝置信息。
[0107] S306,接收信息控制中心發(fā)送的重啟信息。
[0108] 在本發(fā)明實(shí)施例中,在目標(biāo)應(yīng)用程序中預(yù)置被控信息。守護(hù)目標(biāo)應(yīng)用程序啟動(dòng)的 守護(hù)應(yīng)用程序可以有多個(gè),在被控信息中預(yù)置守護(hù)應(yīng)用程序的信息,以使目標(biāo)應(yīng)用程序獲 知將會(huì)被哪些守護(hù)應(yīng)用程序啟動(dòng)守護(hù)。守護(hù)應(yīng)用程序的信息包括守護(hù)應(yīng)用程序的安裝包標(biāo) 識(shí)。
[0109] 相應(yīng)的,會(huì)在被控信息中預(yù)置啟動(dòng)裝載信息的參數(shù)和格式,用于與重啟信息中的 啟動(dòng)目標(biāo)應(yīng)用程序的裝載信息匹配。
[0110] 作為本發(fā)明實(shí)施例的一個(gè)實(shí)施例,啟動(dòng)裝載信息的參數(shù)包括action和data,其中 action聲明了定義好的行為,data聲明了通過(guò)這種行為進(jìn)行參數(shù)的傳遞。在本發(fā)明實(shí)施例 中,被控信息中預(yù)置的啟動(dòng)裝載信息的參數(shù)和格式的源代碼如下:
[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,若信息控制中心發(fā)送的重啟信息與被控信息匹配,則目標(biāo)應(yīng)用程序重新啟 動(dòng)。
[0113] 在本發(fā)明實(shí)施例中,若信息控制中心發(fā)起的重啟操作中包含的啟動(dòng)目標(biāo)應(yīng)用程序 的啟動(dòng)裝載信息的參數(shù)和格式,與被控信息中的啟動(dòng)裝載信息的參數(shù)和格式向匹配,則目 標(biāo)應(yīng)用程序根據(jù)信息控制中心的重啟操作重啟,否則目標(biāo)應(yīng)用程序不響應(yīng)信息控制中心的 重啟操作。
[0114] 本發(fā)明實(shí)施例通過(guò)檢測(cè)目標(biāo)應(yīng)用程序的運(yùn)行狀態(tài),當(dāng)目標(biāo)應(yīng)用程序停止運(yùn)行時(shí), 守護(hù)應(yīng)用程序向信息控制中心發(fā)送重啟目標(biāo)應(yīng)用程序的重啟請(qǐng)求,信息控制中心根據(jù)重啟 請(qǐng)求發(fā)起目標(biāo)應(yīng)用程序的重啟操作,若重啟操作中攜帶的信息與被控信息匹配,則目標(biāo)應(yīng) 用程序重啟,從而實(shí)現(xiàn)了守護(hù)應(yīng)用程序守護(hù)監(jiān)聽(tīng)目標(biāo)應(yīng)用程序,保護(hù)目標(biāo)應(yīng)用程序在被強(qiáng) 制退出后重啟。
[0115] 圖6示出了本發(fā)明實(shí)施例提供的應(yīng)用程序啟動(dòng)保護(hù)裝置的結(jié)構(gòu)示意圖,該裝置包 括:檢測(cè)請(qǐng)求發(fā)送單元41、運(yùn)行狀態(tài)判斷單元42以及重啟請(qǐng)求發(fā)送單元43,其中:
[0116] 檢測(cè)請(qǐng)求發(fā)送單元41,向信息控制中心發(fā)送檢測(cè)目標(biāo)應(yīng)用程序運(yùn)行狀態(tài)的檢測(cè)請(qǐng) 求。
[0117] 作為本發(fā)明的一個(gè)實(shí)施例,檢測(cè)請(qǐng)求發(fā)送單元41包括:檢測(cè)條件判斷模塊411、檢 測(cè)請(qǐng)求發(fā)送模塊412,其中:
[0118] 檢測(cè)條件判斷模塊411,判斷發(fā)送檢測(cè)請(qǐng)求的檢測(cè)條件是否滿足。
[0119] 檢測(cè)請(qǐng)求發(fā)送模塊412,當(dāng)檢測(cè)條件判斷模塊411判斷發(fā)送檢測(cè)請(qǐng)求的檢測(cè)條件 滿足時(shí),向信息控制中心發(fā)送檢測(cè)目標(biāo)應(yīng)用程序運(yùn)行狀態(tài)的檢測(cè)請(qǐng)求。
[0120] 在本發(fā)明實(shí)施例中,在控制信息中預(yù)置檢測(cè)條件,當(dāng)檢測(cè)條件滿足時(shí)啟動(dòng)對(duì)目標(biāo) 應(yīng)用程序運(yùn)行狀態(tài)的檢測(cè)請(qǐng)求。例如可以設(shè)定檢測(cè)時(shí)間閾值,檢測(cè)時(shí)間閾值可以根據(jù)需求 設(shè)定,如1分鐘、半小時(shí)等。
[0121] 作為本發(fā)明的一個(gè)實(shí)施例,一個(gè)目標(biāo)應(yīng)用程序也可以被多個(gè)守護(hù)應(yīng)用程序守護(hù), 當(dāng)有多個(gè)守護(hù)應(yīng)用程序保護(hù)目標(biāo)應(yīng)用程序啟動(dòng)時(shí),檢測(cè)請(qǐng)求發(fā)送單元41還包括:檢測(cè)條件 設(shè)定模塊413,其中:
[0122] 檢測(cè)條件設(shè)定模塊413,根據(jù)預(yù)設(shè)的優(yōu)先級(jí)確認(rèn)所述檢測(cè)條件,該優(yōu)先級(jí)可以根據(jù) 應(yīng)用程序的文件大小和活躍度中的至少一種確定。
[0123] 在本發(fā)明實(shí)施例中,多個(gè)守護(hù)應(yīng)用程序分別向信息控制中心發(fā)送檢測(cè)目標(biāo)應(yīng)用程 序的運(yùn)行狀態(tài)檢測(cè)請(qǐng)求;其中,發(fā)送檢測(cè)請(qǐng)求的檢測(cè)條件可以根據(jù)守護(hù)應(yīng)用程序的優(yōu)先級(jí) 確定。例如,檢測(cè)條件可以是檢測(cè)時(shí)間閾值,優(yōu)先級(jí)較高的守護(hù)應(yīng)用程序中,檢測(cè)時(shí)間閾值 可以設(shè)置的短些,這樣發(fā)送檢測(cè)請(qǐng)求的頻率較高,從而保護(hù)目標(biāo)應(yīng)用程序在被強(qiáng)制退出后 快速重啟。優(yōu)先級(jí)較低的守護(hù)應(yīng)用程序中,檢測(cè)時(shí)間閾值可以設(shè)置的稍長(zhǎng)些,這樣發(fā)送檢測(cè) 請(qǐng)求的頻率較低,防止發(fā)送過(guò)多的檢測(cè)請(qǐng)求,浪費(fèi)系統(tǒng)資源,同時(shí)保證目標(biāo)應(yīng)用程序在被強(qiáng) 制退出后能在一定的時(shí)間內(nèi)重新啟動(dòng)。
[0124] 在本發(fā)明實(shí)施例中,可以根據(jù)應(yīng)用程序的文件大小和活躍度中的至少一種來(lái)確定 守護(hù)應(yīng)用程序的優(yōu)先級(jí)。例如,應(yīng)用程序的文件越大優(yōu)先級(jí)越低,反之,文件越小優(yōu)先級(jí)越 高;活躍度越低優(yōu)先級(jí)越低,反之則活躍度越高優(yōu)先級(jí)越高。其中,活躍度可以根據(jù)用戶使 用應(yīng)用程序的頻率或時(shí)長(zhǎng)來(lái)確定。用戶使用應(yīng)用程序的頻率越高或時(shí)間越長(zhǎng),該應(yīng)用程序 的活躍度越高,反之則活躍度越低。
[0125] 作為本發(fā)明的一個(gè)實(shí)施例,檢測(cè)請(qǐng)求發(fā)送單元41還包括:檢測(cè)條件調(diào)整模塊414, 其中:
[0126] 檢測(cè)條件調(diào)整模塊414,可以根據(jù)所述目標(biāo)應(yīng)用程序停止運(yùn)行的頻率調(diào)整所述檢 測(cè)條件。
[0127] 在本發(fā)明實(shí)施例中,可以統(tǒng)計(jì)目標(biāo)應(yīng)用程序的運(yùn)行狀態(tài)為停止運(yùn)行的頻率,該頻 率為目標(biāo)應(yīng)用程序的運(yùn)行狀態(tài)為停止運(yùn)行的次數(shù)與信息控制中心返回的目標(biāo)應(yīng)用程序的 運(yùn)行狀態(tài)的總次數(shù)的比值。檢測(cè)條件可以根據(jù)需求來(lái)設(shè)定,具體的,可以根據(jù)所述頻率來(lái)調(diào) 整。若檢測(cè)條件為檢測(cè)時(shí)間閾值,假設(shè)預(yù)設(shè)的檢測(cè)時(shí)間閾值為1小時(shí),若所述頻率增加,則 檢測(cè)時(shí)間閾值縮短,如半小時(shí);若所述頻率下降,相應(yīng)的檢測(cè)時(shí)間閾值變長(zhǎng),如2小時(shí)。這樣 既能保證目標(biāo)應(yīng)用程序在被強(qiáng)制退出后快速重啟,又能防止發(fā)送過(guò)多的檢測(cè)請(qǐng)求,浪費(fèi)系 統(tǒng)資源。
[0128] 運(yùn)行狀態(tài)判斷單元42,根據(jù)信息控制中心反饋的信息獲取所述目標(biāo)應(yīng)用程序的運(yùn) 行狀態(tài)。
[0129] 在本發(fā)明實(shí)施例中,若信息控制中心反饋的是當(dāng)前終端中所有應(yīng)用程序的運(yùn)行狀 態(tài)信息,則守護(hù)應(yīng)用程序在信息控制中心反饋的信息中查找目標(biāo)應(yīng)用程序的運(yùn)行狀態(tài)來(lái)獲 取目標(biāo)應(yīng)用程序的運(yùn)行狀態(tài);若信息控制中心反饋的是當(dāng)前終端中處于正常運(yùn)行狀態(tài)的應(yīng) 用程序信息,則守護(hù)應(yīng)用程序比較目標(biāo)應(yīng)用程序的信息和信息控制中心反饋的信息,若目 標(biāo)應(yīng)用程序的信息不在信息控制中心反饋的信息中,則判斷目標(biāo)應(yīng)用程序的運(yùn)行狀態(tài)為停 止運(yùn)行。目標(biāo)應(yīng)用程序的信息包括應(yīng)用程序安裝包的標(biāo)識(shí)。<