本發(fā)明涉及終端技術(shù)領(lǐng)域,尤其涉及一種界面啟動方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)的發(fā)展和移動通信網(wǎng)絡(luò)的發(fā)展,同時也伴隨著終端的處理能力和存儲能力的迅猛發(fā)展,海量的應(yīng)用程序得到了迅速傳播和使用;常用的應(yīng)用程序在方便用戶工作和生活的同時,不乏新開發(fā)的應(yīng)用程序也進(jìn)入到用戶的日常生活,提高了用戶的生活質(zhì)量、使用終端的頻率以及使用中的娛樂感。
目前,在終端系統(tǒng)中,正常的用戶界面(UI,User Interface)啟動都必須啟動一個對應(yīng)的界面組件,該界面組件會在被創(chuàng)建時,根據(jù)自身的界面布局文件,生成一個對應(yīng)的界面,然后通過系統(tǒng)的窗口管理服務(wù)顯示出來,呈現(xiàn)給用戶。
比如,以安卓(Android)系統(tǒng)為例,啟動一個應(yīng)用界面(Activity)都有統(tǒng)一的入口,該入口可以是界面管理系統(tǒng)服務(wù)(ActivityManagerService)中的界面啟動(startActivity)函數(shù)。系統(tǒng)通過調(diào)用startActivity函數(shù)來啟動界面,當(dāng)前Android機(jī)制中,對調(diào)用者的身份,調(diào)用者的運(yùn)行狀態(tài)等是沒有限制的,只要startActivity函數(shù)被調(diào)用,都會允許啟動界面。
然而,這種無限制條件的界面啟動方式會為一些惡意應(yīng)用程序所利用,如在后臺調(diào)用界面啟動函數(shù)來啟動界面,彈出某些提示框廣告或者騷擾用戶,導(dǎo)致終端系統(tǒng)的安全性較差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種界面啟動方法及裝置,可以解決現(xiàn)有的界面啟動方式導(dǎo)致終端系統(tǒng)的安全性較差的技術(shù)問題。
本發(fā)明實(shí)施例提供一種界面啟動方法,包括:
接收目標(biāo)界面的啟動請求;
確定發(fā)起所述啟動請求的源應(yīng)用程序;
判斷所述源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序;
若是,則根據(jù)所述啟動請求啟動所述目標(biāo)界面。
相應(yīng)地,本發(fā)明實(shí)施例提供了一種界面啟動裝置,包括:接收模塊、確定模塊、第一判斷模塊和啟動模塊;
所述接收模塊,用于接收目標(biāo)界面的啟動請求;
所述確定模塊,用于確定發(fā)起所述啟動請求的源應(yīng)用程序;
所述第一判斷模塊,用于判斷所述源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序;
所述啟動模塊,用于在所述第一判斷模塊判定為是時,根據(jù)所述啟動請求啟動所述目標(biāo)界面。
本發(fā)明實(shí)施例采用接收目標(biāo)界面的啟動請求,然后,確定發(fā)起啟動請求的源應(yīng)用程序,并判斷該源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序,若是,則根據(jù)啟動請求啟動目標(biāo)界面;該方案可以根據(jù)源應(yīng)用程序的運(yùn)行狀態(tài)來啟動目標(biāo)界面,相對于現(xiàn)有技術(shù)而言,為終端中應(yīng)用界面啟動增加了限制條件,可以防止惡意應(yīng)用程序后臺啟動其他應(yīng)用程序的界面,在一定程度上提高了終端系統(tǒng)的安全性。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例一提供的界面啟動方法的流程示意圖;
圖2是本發(fā)明實(shí)施例二提供的界面啟動方法的流程示意圖;
圖3a是本發(fā)明實(shí)施例三提供的第一種界面啟動裝置的結(jié)構(gòu)示意圖;
圖3b是本發(fā)明實(shí)施例三提供的第二種界面啟動裝置的結(jié)構(gòu)示意圖;
圖3c是本發(fā)明實(shí)施例三提供的第三種界面啟動裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供一種界面啟動方法及裝置。以下將分別進(jìn)行詳細(xì)說明。
實(shí)施例一、
本實(shí)施例將從界面啟動裝置的角度進(jìn)行描述,該界面啟動裝置具體可以集成在終端中,該終端可以為智能手機(jī)、平板電腦等設(shè)備,本實(shí)施例將以該終端安裝的操作系統(tǒng)為Android系統(tǒng)為例進(jìn)行描述。
一種界面啟動方法,包括:接收目標(biāo)界面的啟動請求;確定發(fā)起啟動請求的源應(yīng)用程序;判斷源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序;若是,則根據(jù)啟動請求啟動目標(biāo)界面。
如圖1所示,界面啟動方法,具體流程可以如下:
101、接收目標(biāo)界面的啟動請求。
具體地,應(yīng)用程序中,一個Activity通常就對應(yīng)一個可視化界面,它上面可以顯示一些控件也可以監(jiān)聽并處理用戶的事件做出響應(yīng),當(dāng)某一個應(yīng)用程序A需要調(diào)起或顯示一個可視化界面時,可通過應(yīng)用上下文調(diào)用startActivity函數(shù)來調(diào)用起一個Activity,這個Activity可以是該應(yīng)用程序A自身的,也可以是另一個應(yīng)用程序B的Activity。
在具體實(shí)施過程中,觸發(fā)啟動請求的方式可以有多種,比如,可以是通過點(diǎn)擊終端桌面圖標(biāo)或者其他界面控件觸發(fā)啟動請求,也可以是通過點(diǎn)擊狀態(tài)欄通知、鎖屏通知等方式觸發(fā)啟動請求,還可以是應(yīng)用程序收到某種操作響應(yīng)(如鬧鐘、運(yùn)動提醒等)時自行觸發(fā)啟動請求,以及其他觸發(fā)方式。
102、確定發(fā)起啟動請求的源應(yīng)用程序。
具體地,對于終端而言,在接收到啟動請求之后,可以調(diào)用相關(guān)進(jìn)程獲取發(fā)起該啟動請求的源應(yīng)用程序的相關(guān)信息,由于Android機(jī)制中,啟動一個應(yīng)用程序的Activity都有統(tǒng)一入口:startActivity函數(shù),因此,可以通過獲取startActivity函數(shù)中的caller參數(shù)得到Activity調(diào)用者的調(diào)用者標(biāo)識(如包名信息),以確定發(fā)起該啟動請求的源應(yīng)用程序(調(diào)用者)。此外,還可以通過獲取startActivity函數(shù)中的其他類型參數(shù),如callingPackage,可以獲得該啟動請求所指向的目標(biāo)應(yīng)用程序(被調(diào)用者)信息;也即,步驟“確定發(fā)起啟動請求的源應(yīng)用程序”具體可以包括:
獲取啟動請求對應(yīng)的界面啟動入口函數(shù);
根據(jù)該入口函數(shù)獲取源應(yīng)用標(biāo)識;
根據(jù)源應(yīng)用標(biāo)識確定發(fā)起啟動請求的源應(yīng)用程序。
103、判斷源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序;若是,執(zhí)行步驟104,若否,結(jié)束流程。
在本實(shí)施例中,判斷源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序的方式可以有多種,比如,可以將在當(dāng)前在前臺運(yùn)行的應(yīng)用程序的應(yīng)用標(biāo)識與源應(yīng)用程序的應(yīng)用標(biāo)識進(jìn)行比較,判斷是否相同;也即步驟“判斷源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序”具體流程可以如下:
獲取前臺運(yùn)行的應(yīng)用程序?qū)?yīng)的應(yīng)用標(biāo)識集合;
判斷應(yīng)用標(biāo)識集合中是否存在與源應(yīng)用標(biāo)識相同的應(yīng)用標(biāo)識,其中,源應(yīng)用標(biāo)識為該源應(yīng)用程序的應(yīng)用標(biāo)識;
若是,則判定源應(yīng)用程序?yàn)榍芭_運(yùn)行的應(yīng)用程序;
若否,則判定源應(yīng)用程序不為前臺運(yùn)行的應(yīng)用程序。
其中,該應(yīng)用標(biāo)識集合可以是在界面啟動的過程中形成的,也可以是在接收目標(biāo)界面啟動請求之前形成的,對此不作具體限定。
104、根據(jù)啟動請求啟動目標(biāo)界面。
具體地,在判定源應(yīng)用程序?yàn)榍芭_運(yùn)行的應(yīng)用程序時,可以根據(jù)啟動請求調(diào)用startActivity函數(shù)來啟動相關(guān)Activity組件創(chuàng)建目標(biāo)界面,也即步驟“根據(jù)啟動請求啟動目標(biāo)界面”具體流程可以如下:
根據(jù)啟動請求獲取目標(biāo)界面對應(yīng)的界面組件標(biāo)識;
根據(jù)界面組件標(biāo)識確定相應(yīng)的界面組件;
根據(jù)界面組件啟動目標(biāo)界面。
在判定源應(yīng)用程序?yàn)榍芭_運(yùn)行的應(yīng)用程序時,一定程度上可以認(rèn)為是源應(yīng)用程序啟動自身界面,也即該目標(biāo)界面屬于源應(yīng)用程序;而對于具備分屏功能的終端而言,該目標(biāo)界面可以屬于當(dāng)前在前臺運(yùn)行的任一應(yīng)用程序。
在本實(shí)施例中,可以通過獲取startActivity函數(shù)中該啟動請求對應(yīng)的Intent參數(shù),得到目標(biāo)界面對應(yīng)的界面組件標(biāo)識。Intent為不同組件之間通信的“媒介”,專門提供組件互相調(diào)用的相關(guān)信息,在Intent的描述結(jié)構(gòu)中,有兩個最重要的部分:動作和動作對應(yīng)的數(shù)據(jù),典型的動作類型包括有:MAIN(Activity的門戶)、VIEW、PICK、EDIT等,而動作對應(yīng)的數(shù)據(jù)則以URI(Uniform Resource Identifier,通用資源標(biāo)識符)的形式進(jìn)行表示。通過解析各種Intent實(shí)現(xiàn)不同界面的啟動。
比如,可以調(diào)用startActivity函數(shù)獲取Intent參數(shù),系統(tǒng)可以根據(jù)Intent參數(shù)在所有安裝的應(yīng)用程序中查找到對應(yīng)的Activity組件,Activity組件接收到Intent的通知后開始啟動,根據(jù)自身的界面布局文件,創(chuàng)建一個對應(yīng)的界面。
優(yōu)選地,為了使終端系統(tǒng)中某些應(yīng)用程序的功能不受限制,如,鬧鐘提醒,可以允許后臺運(yùn)行的應(yīng)用程序啟動某些滿足條件的應(yīng)用界面,也即,該方法還可以包括,在判定源應(yīng)用程序不為前臺運(yùn)行的應(yīng)用程序時,判斷源應(yīng)用程序是否為后臺運(yùn)行的應(yīng)用程序;
若是,則判斷目標(biāo)界面所屬的目標(biāo)應(yīng)用程序是否滿足預(yù)設(shè)條件;
若滿足預(yù)設(shè)條件,則根據(jù)啟動請求啟動目標(biāo)界面。
具體地,在本實(shí)施例中,該預(yù)設(shè)條件可以由本領(lǐng)域技術(shù)人員進(jìn)行設(shè)定,也可以由用戶進(jìn)行設(shè)定??蛇x地,可以設(shè)定同一開發(fā)商的應(yīng)用程序之間可以相互啟動界面,如QQ、微信、QQ音樂等同一開發(fā)商開發(fā)的應(yīng)用程序;也即步驟“判斷目標(biāo)界面所屬的目標(biāo)應(yīng)用程序是否滿足預(yù)設(shè)條件”可以包括:
判斷在后臺運(yùn)行的應(yīng)用程序中,是否存在目標(biāo)應(yīng)用程序?qū)?yīng)的關(guān)聯(lián)應(yīng)用程序,其中,目標(biāo)應(yīng)用程序?yàn)槟繕?biāo)界面所屬的應(yīng)用程序,關(guān)聯(lián)應(yīng)用程序與目標(biāo)應(yīng)用程序之間存在關(guān)聯(lián)關(guān)系;
若存在,則判定目標(biāo)應(yīng)用程序滿足預(yù)設(shè)條件;
若不存在,則判定目標(biāo)應(yīng)用程序不滿足預(yù)設(shè)條件。
其中,關(guān)聯(lián)應(yīng)用程序可以由用戶進(jìn)行設(shè)定,將對應(yīng)的關(guān)聯(lián)應(yīng)用標(biāo)識添加至關(guān)聯(lián)應(yīng)用標(biāo)識集合并存儲在終端存儲區(qū)域中。在判斷是否存在關(guān)聯(lián)應(yīng)用程序時,可以獲取終端存儲區(qū)域中目標(biāo)應(yīng)用程序?qū)?yīng)的關(guān)聯(lián)應(yīng)用標(biāo)識集合,以及后臺運(yùn)行的應(yīng)用程序?qū)?yīng)的后臺應(yīng)用標(biāo)識集合,然后將該關(guān)聯(lián)應(yīng)用標(biāo)識集合與后臺應(yīng)用標(biāo)識集合進(jìn)行比較,判斷是否存在相同的應(yīng)用標(biāo)識,若存在,則判定在后臺運(yùn)行的應(yīng)用程序中存在目標(biāo)應(yīng)用程序?qū)?yīng)的關(guān)聯(lián)應(yīng)用程序,此時判定為滿足預(yù)設(shè)條件。
比如,目標(biāo)應(yīng)用標(biāo)識若為x,假設(shè)x對應(yīng)的關(guān)聯(lián)應(yīng)用標(biāo)識集合X為{x1,x2,x3,x4},后臺應(yīng)用標(biāo)識集合Y為{y1,y2,y3},若集合X中存在任一元素與集合Y中任一元素相同(如x1與y2相同),則判定為滿足預(yù)設(shè)條件,否則不滿足。
另一可選地,為了進(jìn)一步降低后臺應(yīng)用界面的干擾,可以限定后臺運(yùn)行的應(yīng)用程序只可以啟動自身的界面,也即步驟“判斷目標(biāo)界面所屬的目標(biāo)應(yīng)用程序是否滿足預(yù)設(shè)條件”具體流程可以如下:
判斷目標(biāo)應(yīng)用程序與源應(yīng)用程序是否相同;
若相同,則判定目標(biāo)應(yīng)用程序滿足預(yù)設(shè)條件。
若不相同,則判定目標(biāo)應(yīng)用程序不滿足預(yù)設(shè)條件。
進(jìn)一步優(yōu)選地,在判定目標(biāo)應(yīng)用程序不滿足預(yù)設(shè)條件之后,為了避免系統(tǒng)長時間處于未響應(yīng)的狀態(tài),可以向終端系統(tǒng)反饋啟動請求被拒絕的信息,也即該方法還可以包括:
在判定目標(biāo)應(yīng)用程序不滿足預(yù)設(shè)條件時,基于啟動請求生成攔截信息;
將攔截信息返回至終端系統(tǒng),并將該攔截信息添加至該終端系統(tǒng)的日志文件中。
其中,攔截信息可以攜帶源應(yīng)用程標(biāo)識、目標(biāo)應(yīng)用標(biāo)識、目標(biāo)界面組件等信息。
具體地,在判定目標(biāo)應(yīng)用程序不滿足預(yù)設(shè)條件后,可以打印日志文件并上報(bào)ActivityManagerService系統(tǒng)服務(wù),以告知終端系統(tǒng)后臺啟動其它應(yīng)用程序界面的啟動請求被攔截而導(dǎo)致目標(biāo)界面無法啟動,以避免重復(fù)發(fā)起請求,節(jié)約系統(tǒng)資源。進(jìn)一步地,若調(diào)用者需要得到返回值,可以對調(diào)用者返回該啟動請求被拒絕信息,以防止系統(tǒng)或應(yīng)用阻塞。
在實(shí)際應(yīng)用中,為了提升用戶體驗(yàn),在終端系統(tǒng)拒絕該啟動請求后,系統(tǒng)可以通過狀態(tài)欄通知、消息提示框、語音等方式提示用戶知曉,避免用戶等待,此外,還可以提示用戶后臺存在異常的應(yīng)用程序、終端系統(tǒng)可能存在安全隱患等。
由上可知,本發(fā)明實(shí)施例提供了一種界面啟動方法,采用接收目標(biāo)界面的啟動請求,然后,確定發(fā)起啟動請求的源應(yīng)用程序,并判斷該源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序,若是,則根據(jù)啟動請求啟動目標(biāo)界面;該方案可以根據(jù)源應(yīng)用程序的運(yùn)行狀態(tài)、調(diào)用者與被調(diào)用者之間的關(guān)系,選擇性地啟動目標(biāo)界面,相對于現(xiàn)有技術(shù)而言,為終端中應(yīng)用界面啟動增加了限制條件,可以防止惡意應(yīng)用程序后臺啟動其他應(yīng)用程序的界面,減少了應(yīng)用界面的干擾,在一定程度上提高了終端系統(tǒng)的安全性。
實(shí)施例二、
根據(jù)實(shí)施例一所描述的方法,以下將舉例作進(jìn)一步詳細(xì)說明。
在本實(shí)施例中,將以該界面啟動裝置具體以軟件的形式集成在移動終端中,該裝置中包括有應(yīng)用界面啟動檢測機(jī)制,并以App的形式集成在終端系統(tǒng)中,并以該移動終端安裝的操作系統(tǒng)為Android系統(tǒng)為例進(jìn)行詳細(xì)描述。
如圖2所示,一種界面啟動方法,具體流程可以如下:
201、移動終端接收目標(biāo)界面啟動請求,并確定發(fā)起該啟動請求的源應(yīng)用程序。
具體地,可以為應(yīng)用界面啟動檢測機(jī)制APP設(shè)置一個功能開關(guān),用戶可選擇性打開或關(guān)閉該APP的檢測功能。在該功能處于開啟狀態(tài)時,若接收目標(biāo)界面啟動請求,則移動終端可以通過應(yīng)用界面檢測機(jī)制獲取startActivity函數(shù)的相關(guān)參數(shù),以確定發(fā)起該啟動請求的源應(yīng)用程序;比如,可以通過獲取startActivity函數(shù)中的caller參數(shù)得到Activity調(diào)用者的調(diào)用者標(biāo)識(如包名信息),根據(jù)調(diào)用者標(biāo)識確定發(fā)起該啟動請求的源應(yīng)用程序(調(diào)用者)。
比如,在QQ音樂客戶端分享一首音樂給微信聯(lián)系人時,用戶點(diǎn)擊某控件,彈出“分享”菜單,在這一過程中,觸發(fā)了“分享”菜單界面的啟動請求,對應(yīng)的源應(yīng)用程序確定為QQ音樂,隨后點(diǎn)擊菜單中的微信圖標(biāo),彈出微信聯(lián)系人菜單,這一過程中,觸發(fā)了微信聯(lián)系人菜單界面的啟動請求,對應(yīng)的源應(yīng)用程序?yàn)镼Q音樂,然后點(diǎn)擊某一聯(lián)系人圖標(biāo),彈出音樂發(fā)送界面,在這一過程中,觸發(fā)了音樂發(fā)送界面的啟動請求,對應(yīng)的源應(yīng)用程序?yàn)槲⑿?,最后點(diǎn)擊“發(fā)送”,彈出與好友的聊天界面,成功將音樂分享給好友,這一過程中,觸發(fā)了聊天界面啟動請求,對應(yīng)的源應(yīng)用程序?yàn)槲⑿拧?/p>
202、移動終端判斷源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序;若是,執(zhí)行步驟205;若否,執(zhí)行步驟203。
在本實(shí)施例中,判斷源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序的方式可以有多種,比如,可以將在當(dāng)前在前臺運(yùn)行的應(yīng)用程序的應(yīng)用標(biāo)識與源應(yīng)用程序的應(yīng)用標(biāo)識進(jìn)行比較,判斷是否相同;也即步驟“移動終端判斷源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序”具體流程可以如下:
移動終端獲取當(dāng)前在前臺運(yùn)行的應(yīng)用程序的應(yīng)用標(biāo)識,以得到前臺應(yīng)用標(biāo)識集合;
移動終端判斷前臺應(yīng)用標(biāo)識集合中是否存在與源應(yīng)用標(biāo)識相同的應(yīng)用標(biāo)識,其中,源應(yīng)用標(biāo)識為該源應(yīng)用程序的應(yīng)用標(biāo)識;
若是,則判定源應(yīng)用程序?yàn)榍芭_運(yùn)行的應(yīng)用程序;
若否,則判定源應(yīng)用程序不為前臺運(yùn)行的應(yīng)用程序。
具體地,移動終端可以調(diào)用應(yīng)用界面啟動檢測機(jī)獲取前臺應(yīng)用標(biāo)識集合,并將前臺應(yīng)用標(biāo)識集合中的應(yīng)用標(biāo)識與源應(yīng)用標(biāo)識進(jìn)行比較,進(jìn)而判斷源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序。
203、移動終端判斷源應(yīng)用程序是否為后臺運(yùn)行的應(yīng)用程序;若是,執(zhí)行步驟204;若否,結(jié)束流程。
在本實(shí)施例中,判斷源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序的方式可以有多種,比如,可以參考上述“判斷源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序”的方式,將在當(dāng)前在后臺運(yùn)行的應(yīng)用程序的應(yīng)用標(biāo)識與源應(yīng)用程序的應(yīng)用標(biāo)識進(jìn)行比較,判斷是否相同;也即步驟“移動終端判斷源應(yīng)用程序是否為后臺運(yùn)行的應(yīng)用程序”具體流程可以如下:
移動終端獲取當(dāng)前在后臺運(yùn)行的應(yīng)用程序?qū)?yīng)的應(yīng)用標(biāo)識,以得到后臺應(yīng)用標(biāo)識集合;
移動終端判斷后臺應(yīng)用標(biāo)識集合中是否存在與源應(yīng)用標(biāo)識相同的應(yīng)用標(biāo)識;
若是,則判定源應(yīng)用程序?yàn)楹笈_運(yùn)行的應(yīng)用程序;
若否,則判定源應(yīng)用程序不為后臺運(yùn)行的應(yīng)用程序。
其具體實(shí)施過程請參考上述步驟203“判斷源應(yīng)用程序是否為后臺運(yùn)行的應(yīng)用程序”,本發(fā)明對此不再贅述。
204、移動終端判斷源應(yīng)用程序與該目標(biāo)界面所屬的目標(biāo)應(yīng)用程序是否相同;若是,執(zhí)行步驟205;若否,結(jié)束流程。
具體地,可以通過判斷源應(yīng)用程序與該目標(biāo)界面所屬的目標(biāo)應(yīng)用程序是否相同,確定源應(yīng)用程序是否在自啟界面。
205、移動終端確定相應(yīng)的界面組件,并根據(jù)該界面組件開啟目標(biāo)界面。
具體地,在移動終端判定源應(yīng)用程序?yàn)榍芭_運(yùn)行的應(yīng)用程序,或者判定源應(yīng)用程序與目標(biāo)應(yīng)用程序相同時,可以根據(jù)啟動請求調(diào)用startActivity函數(shù)來啟動相關(guān)Activity組件創(chuàng)建目標(biāo)界面,也即步驟“移動終端確定相應(yīng)的界面組件,并根據(jù)該界面組件開啟目標(biāo)界面”具體可以包括:
移動終端根據(jù)啟動請求獲取目標(biāo)界面對應(yīng)的界面組件標(biāo)識;
移動終端根據(jù)界面組件標(biāo)識確定相應(yīng)的界面組件;
移動終端根據(jù)界面組件啟動目標(biāo)界面。
具體地,可以調(diào)用startActivity函數(shù)獲取Intent參數(shù),系統(tǒng)可以根據(jù)Intent參數(shù)在所有安裝的應(yīng)用程序中查找到對應(yīng)的Activity組件,Activity組件接收到Intent的通知后開始啟動,根據(jù)自身的界面布局文件,創(chuàng)建一個對應(yīng)的界面。
優(yōu)選地,在判定源應(yīng)用程序是不為后臺運(yùn)行的應(yīng)用程序,或者判定源應(yīng)用程序與目標(biāo)界面所屬的目標(biāo)應(yīng)用程序不相同之后,為了避免系統(tǒng)長時間處于未響應(yīng)的狀態(tài),可以向終端系統(tǒng)反饋啟動請求被拒絕的信息,也即,移動終端可以打印日志文件并上報(bào)ActivityManagerService系統(tǒng)服務(wù),以告知終端系統(tǒng)后臺啟動其它應(yīng)用程序界面的啟動請求被攔截而導(dǎo)致目標(biāo)界面無法啟動,以避免重復(fù)發(fā)起請求,節(jié)約系統(tǒng)資源。進(jìn)一步地,若調(diào)用者需要得到返回值,可以對調(diào)用者返回該啟動請求被拒絕信息,以防止系統(tǒng)或應(yīng)用阻塞。
在實(shí)際應(yīng)用中,為了提升用戶體驗(yàn),在終端系統(tǒng)拒絕該啟動請求后,系統(tǒng)可以通過狀態(tài)欄通知、消息提示框、語音等方式提示用戶知曉,避免用戶等待,此外,還可以提示用戶后臺存在異常的應(yīng)用程序、終端系統(tǒng)可能存在安全隱患等;比如,假設(shè)源應(yīng)用程序?yàn)槲⑿?,若微信在后臺發(fā)起啟動其他應(yīng)用程序界面的請求被攔截的次數(shù)達(dá)到一定預(yù)設(shè)閾值,則可以在應(yīng)用界面啟動機(jī)制APP的應(yīng)用界面顯示“微信客戶端可能存在異常,請注意賬戶安全”等字樣。
由上可知,本發(fā)明實(shí)施例提供了一種界面啟動方法,通過移動終端接收目標(biāo)界面啟動請求,并確定發(fā)起該啟動請求的源應(yīng)用程序,隨后,判斷源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序,若是,則啟動目標(biāo)界面,若否,則判斷源應(yīng)用程序是否為后臺運(yùn)行的應(yīng)用程序,若為后臺運(yùn)行的應(yīng)用程序,進(jìn)而判斷源應(yīng)用程序與該目標(biāo)界面所屬的目標(biāo)應(yīng)用程序是否相同,若相同,則啟動目標(biāo)界面;該方案可以根據(jù)源應(yīng)用程序的運(yùn)行狀態(tài)、調(diào)用者與被調(diào)用者之間的關(guān)系,選擇性地啟動目標(biāo)界面,相對于現(xiàn)有技術(shù)而言,為終端中應(yīng)用界面啟動增加了限制條件,禁止應(yīng)用程序后臺啟動其他應(yīng)用程序的界面,減少了應(yīng)用界面的干擾,在一定程度上提高了終端系統(tǒng)的安全性。
實(shí)施例三、
為了更好地實(shí)施以上方法,本發(fā)明實(shí)施例還提供一種界面啟動裝置,該界面啟動裝置可以集成在終端中,該終端具體可以包括手機(jī)、平板電腦、筆記本電腦等設(shè)備。如圖3a所示,該界面啟動裝置可以包括接收模塊301、確定模塊302、第一判斷模塊303和啟動模塊304,如下:
接收模塊301,用于接收目標(biāo)界面的啟動請求;
確定模塊302,用于確定發(fā)起所述啟動請求的源應(yīng)用程序;
第一判斷模塊303,用于判斷源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序;
啟動模塊304,用于在第一判斷模塊303判定為是時,根據(jù)啟動請求啟動目標(biāo)界面。
優(yōu)選地,如圖3b所示,第一判斷模塊303具體可以包括:獲取子模塊3031和判斷子模塊3032;
獲取子模塊3031,用于獲取前臺運(yùn)行的應(yīng)用程序?qū)?yīng)的應(yīng)用標(biāo)識集合;
判斷子模塊3032,用于判斷應(yīng)用標(biāo)識集合中是否存在與源應(yīng)用標(biāo)識相同的應(yīng)用標(biāo)識,其中,源應(yīng)用標(biāo)識為源應(yīng)用程序的應(yīng)用標(biāo)識。
優(yōu)選地,如圖3c所示,該裝置還可以包括:第二判斷模塊305和第三判斷模塊306;
第二判斷模塊305,用于在第一判斷模塊303判定源應(yīng)用程序不為前臺運(yùn)行的應(yīng)用程序時,判斷源應(yīng)用程序是否為后臺運(yùn)行的應(yīng)用程序;
第三判斷模塊306,用于在第二判斷模塊305判斷定為是時,判斷目標(biāo)界面所屬的目標(biāo)應(yīng)用程序是否滿足預(yù)設(shè)條件;
啟動模塊304,具體用于在第三判斷模塊306判定為滿足預(yù)設(shè)條件時,根據(jù)啟動請求啟動目標(biāo)界面。
優(yōu)選地,第三判斷模塊306,具體用于判斷目標(biāo)應(yīng)用程序與源應(yīng)用程序是否相同;若相同,則判定目標(biāo)應(yīng)用程序滿足預(yù)設(shè)條件。
由上可知,本發(fā)明實(shí)施例提供了一種界面啟動裝置,通過接收模塊301接收目標(biāo)界面的啟動請求,確定模塊302確定發(fā)起啟動請求的源應(yīng)用程序,第一判斷模塊303判斷該源應(yīng)用程序是否為前臺運(yùn)行的應(yīng)用程序,啟動模塊304在判斷模塊303判定為是時,根據(jù)啟動請求啟動目標(biāo)界面;該方案可以根據(jù)源應(yīng)用程序的運(yùn)行狀態(tài)來啟動目標(biāo)界面,相對于現(xiàn)有技術(shù)而言,為終端中應(yīng)用界面啟動增加了限制條件,在一定程度上提高了終端系統(tǒng)的安全性。
本領(lǐng)域技術(shù)人員可以理解,以上實(shí)施方式除可以應(yīng)用于安裝了Android系統(tǒng)的終端外,還可以應(yīng)用于安裝其他操作系統(tǒng)的終端,比如,IOS系統(tǒng)、Symbian系統(tǒng)、Windows Phone系統(tǒng)、BlackBerryOS系統(tǒng)中的任一種操作系統(tǒng)的終端,應(yīng)用廣泛。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計(jì)算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:只讀存儲器(ROM,Read Only Memory)、隨機(jī)存取記憶體(RAM,Random Access Memory)、磁盤或光盤等。
以上對本發(fā)明實(shí)施例所提供的一種界面啟動方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用程序了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用程序范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。