應(yīng)用程序控制方法
【專利摘要】本發(fā)明提供了一種應(yīng)用程序控制方法,包括:終端中的應(yīng)用程序包括主界面應(yīng)用程序和從應(yīng)用程序,主界面應(yīng)用程序作為各從應(yīng)用程序的啟動入口;每一應(yīng)用程序均具有對應(yīng)的狀態(tài)接口,各應(yīng)用程序均通過各自的狀態(tài)接口接收來自其他應(yīng)用程序的狀態(tài)消息以及廣播本程序的狀態(tài)消息;每一應(yīng)用程序根據(jù)接收到的狀態(tài)消息和程序當(dāng)前運行狀態(tài)確定是否改變本程序的運行狀態(tài),以實現(xiàn)焦點切換。本發(fā)明中的各從應(yīng)用程序可以廣播自己的狀態(tài)消息以及接收其他從應(yīng)用程序的狀態(tài)消息,應(yīng)用程序能夠監(jiān)控這些從應(yīng)用程序的狀態(tài)消息,各應(yīng)用程序能夠根據(jù)這些狀態(tài)消息判斷是否改變自己的運行狀態(tài),無需消息轉(zhuǎn)發(fā)模塊,也使用戶的操作更加便捷。
【專利說明】應(yīng)用程序控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息【技術(shù)領(lǐng)域】,具體而言,涉及一種應(yīng)用程序控制方法。
【背景技術(shù)】
[0002]目前,在智能電視中存在大量的應(yīng)用程序,各個應(yīng)用程序之間存在著各種類型的共存、互斥關(guān)系,在基于Linux的TV系統(tǒng)中,缺乏有效的應(yīng)用程序管理機制,所有應(yīng)用程序都是單任務(wù)獨占式運行,例如當(dāng)應(yīng)用程序A退出時,不能回到啟動A時的Π控制界面,用戶必須重新啟動UI控制界面才能選擇啟動其他應(yīng)用程序,用戶的操作過程也較為繁瑣。
[0003]因此,如何管理應(yīng)用程序,簡化用戶的操作過程稱為亟待解決的技術(shù)問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問題在于,提供一種新的應(yīng)用程序控制方法,能夠增強應(yīng)用程序之間的交互性,簡化用戶的操作過程。
[0005]有鑒于此,根據(jù)本發(fā)明的一個方面,提供了一種應(yīng)用程序控制方法,包括:終端中的應(yīng)用程序包括主界面應(yīng)用程序和從應(yīng)用程序,所述主界面應(yīng)用程序作為各從應(yīng)用程序的啟動入口 ;所述主界面應(yīng)用程序和每一所述從應(yīng)用程序均具有對應(yīng)的狀態(tài)接口,所述主界面應(yīng)用程序和每一所述從應(yīng)用程序均通過各自的狀態(tài)接口接收來自其他應(yīng)用程序的狀態(tài)消息以及廣播本程序的狀態(tài)消息;所述終端中的每一應(yīng)用程序根據(jù)接收到的狀態(tài)消息和程序當(dāng)前運行狀態(tài)確定是否改變本程序的運行狀態(tài),以實現(xiàn)焦點切換。
[0006]在該技術(shù)方案中,創(chuàng)建了一套管理機制,讓Η0ΜΕΠ作為主應(yīng)用程序,其他應(yīng)用程序為從應(yīng)用程序,各應(yīng)用程序具有對應(yīng)的狀態(tài)接口,在應(yīng)用廣播消息機制之后,各應(yīng)用程序之間通過各自的狀態(tài)接口,能夠獲知其他應(yīng)用程序的狀態(tài),使得應(yīng)用程序之間能夠進行交互,也便于管理各應(yīng)用程序。各應(yīng)用程序根據(jù)其他應(yīng)用程序廣播的狀態(tài)消息來確定是否改變本程序的運行狀態(tài),從而完成應(yīng)用程序的管理與控制。
[0007]在終端運行主界面應(yīng)用程序時,可在終端上顯示用戶交互主界面(Π控制界面),在該用戶交互主界面上集成了終端的各類應(yīng)用程序(即從應(yīng)用程序),用戶可在該用戶交互主界面上選擇啟動從應(yīng)用程序。各從應(yīng)用程序的運行狀態(tài)將影響主界面應(yīng)用程序的運行狀態(tài)。由于本發(fā)明中的各應(yīng)用程序能夠向外廣播自己的狀態(tài)信息,因此主界面應(yīng)用程序能夠監(jiān)控各從應(yīng)用程序的運行狀態(tài),從而主動改變主界面應(yīng)用程序的運行狀態(tài),無需用戶主動控制主界面應(yīng)用程序的運行狀態(tài)。例如當(dāng)從應(yīng)用程序一瀏覽器從前臺進入后臺時,主界面應(yīng)用程序就自動根據(jù)監(jiān)測到的瀏覽器的狀態(tài)調(diào)整自己的運行狀態(tài),從原先的后臺切換到前臺,無需用戶重新啟動Π控制界面,從而減少了用戶的操作步驟,使用戶的操作更加便捷。
【專利附圖】
【附圖說明】
[0008]圖1是根據(jù)本發(fā)明的實施例的應(yīng)用程序控制方法的流程圖;
[0009]圖2是根據(jù)本發(fā)明的實施例的應(yīng)用程序鏈表的結(jié)構(gòu)示意圖;[0010]圖3A是根據(jù)本發(fā)明的實施例的用戶交互主界面的示意圖;
[0011]圖3B是根據(jù)本發(fā)明的實施例的主界面應(yīng)用程序的運行狀態(tài)變化示意圖。
【具體實施方式】
[0012]為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和【具體實施方式】對本發(fā)明進行進一步的詳細描述。
[0013]在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明并不限于下面公開的具體實施例的限制。
[0014]圖1是根據(jù)本發(fā)明的實施例的應(yīng)用程序控制方法的流程圖。
[0015]如圖1所示,根據(jù)本發(fā)明的實施例的應(yīng)用程序控制方法可以包括以下步驟:步驟102,終端中的應(yīng)用程序包括主界面應(yīng)用程序和從應(yīng)用程序,主界面應(yīng)用程序作為各從應(yīng)用程序的啟動入口,主界面應(yīng)用程序和每一從應(yīng)用程序均具有對應(yīng)的狀態(tài)接口,主界面應(yīng)用程序和每一從應(yīng)用程序均通過各自的狀態(tài)接口接收來自其他應(yīng)用程序的狀態(tài)消息以及廣播本程序的狀態(tài)消息;步驟104,終端中的每一應(yīng)用程序根據(jù)接收到的狀態(tài)消息和程序當(dāng)前運行狀態(tài)確定是否改變本程序的運行狀態(tài),以實現(xiàn)焦點切換。
[0016]其中,每一應(yīng)用程序?qū)?yīng)的狀態(tài)接口均包括暫停狀態(tài)接口、重新運行狀態(tài)接口、停止?fàn)顟B(tài)接口、退出狀態(tài)接口,暫停狀態(tài)接口用于接收或廣播暫停狀態(tài)消息,并在應(yīng)用程序暫停時,保存當(dāng)前狀態(tài)信息,重新運行狀態(tài)接口用于接收或廣播恢復(fù)運行狀態(tài)消息,并在應(yīng)用程序暫停時,保存當(dāng)前運行數(shù)據(jù),停止?fàn)顟B(tài)接口用于接收或廣播停止?fàn)顟B(tài)消息,在應(yīng)用程序停止運行時,釋放占用資源,退出狀態(tài)接口用于接收或廣播強制退出狀態(tài)消息,強制應(yīng)用程序退出。
[0017]在本實施例中,創(chuàng)建了一套管理機制,讓Homen作為主應(yīng)用程序,其他應(yīng)用程序為從應(yīng)用程序,各應(yīng)用程序具有對應(yīng)的狀態(tài)接口,在應(yīng)用廣播消息機制之后,各應(yīng)用程序之間通過各自的狀態(tài)接口,能夠獲知其他應(yīng)用程序的狀態(tài),使得應(yīng)用程序之間能夠進行交互,也便于管理各應(yīng)用程序。各應(yīng)用程序根據(jù)其他應(yīng)用程序廣播的狀態(tài)消息來確定是否改變本程序的運行狀態(tài),從而完成應(yīng)用程序的管理與控制。
[0018]各從應(yīng)用程序的運行狀態(tài)將影響主界面應(yīng)用程序的運行狀態(tài)。由于本發(fā)明中的各應(yīng)用程序能夠向外廣播自己的狀態(tài)信息,因此主界面應(yīng)用程序能夠監(jiān)控各從應(yīng)用程序的運行狀態(tài),從而主動改變主界面應(yīng)用程序的運行狀態(tài),無需用戶主動控制主界面應(yīng)用程序的運行狀態(tài)。例如當(dāng)從應(yīng)用程序一瀏覽器從前臺進入后臺時,主界面應(yīng)用程序就自動根據(jù)監(jiān)測到的瀏覽器的狀態(tài)調(diào)整自己的運行狀態(tài),從原先的后臺切換到前臺,無需用戶重新啟動UI控制界面,從而減少了用戶的操作步驟,使用戶的操作更加便捷。
[0019]需說明的是,運行狀態(tài)包括處于前臺焦點狀態(tài),以及后臺狀態(tài)、退出狀態(tài),其中,后臺狀態(tài)包括暫停狀態(tài)、停止?fàn)顟B(tài)、后臺運行狀態(tài),后臺運行表示應(yīng)用程序處于非焦點狀態(tài),但仍在運行當(dāng)中,例如顯示屏顯示瀏覽網(wǎng)頁,播放器雖然處于后臺,但仍在播放音樂,這種運行狀態(tài)可稱之為后臺運行狀態(tài)。
[0020]在上述技術(shù)方案中,優(yōu)選的,所述主界面應(yīng)用程序還通過其狀態(tài)接口接收基于用戶指令生成的控制消息,并將所述控制消息廣播至每一所述從應(yīng)用程序,所述控制消息中包含程序名稱;所述從應(yīng)用程序接收到所述控制消息后,判斷所述控制消息是否包含本程序的名稱,若包含有本程序的名稱,則響應(yīng)所述控制消息,改變本程序的運行狀態(tài),所述控制消息包括啟動控制消息、暫停控制消息、重新運行控制消息、退出控制消息。
[0021]在終端運行主界面應(yīng)用程序時,可在終端上顯示用戶交互主界面(Π控制界面),在該用戶交互主界面上集成了終端的各類應(yīng)用程序(即從應(yīng)用程序),用戶可在該用戶交互主界面上選擇啟動從應(yīng)用程序。在TV系統(tǒng)中,所有應(yīng)用程序的配置信息都會存儲在一個xml配置文件中,里面包含了應(yīng)用程序所在的路徑,當(dāng)從主界面應(yīng)用程序中啟動瀏覽器時,主界面應(yīng)用程序就會向操作系統(tǒng)發(fā)送啟動命令,比如在Iinux系統(tǒng)下是/path/browser—u www.google, com”。在這種情況下控制消息是主動的,就是主動啟動一個從應(yīng)用程序。因此主界面應(yīng)用程序除了具有接收以及廣播狀態(tài)消息的功能外,還具有傳播控制消息的功能,而從應(yīng)用程序僅有接收控制消息、其他應(yīng)用程序廣播的狀態(tài)消息以及廣播本程序的狀態(tài)消息的功能。
[0022]在上述任一技術(shù)方案中,優(yōu)選的,在所述從應(yīng)用程序先后接收到多個具有不同內(nèi)容的控制消息時,所述從應(yīng)用程序按照先后順序處理所接收到的多個不同的控制消息。
[0023]在一些場景下,從應(yīng)用程序可能會連續(xù)接收到不同的控制消息,例如先接收到重新運行的控制消息,又接收到暫停的控制消息,從應(yīng)用程序會根據(jù)先后順序先響應(yīng)重新運行的控制消息,接著響應(yīng)暫停的控制消息。
[0024]在上述技術(shù)方案中,優(yōu)選的,建立應(yīng)用程序鏈表,將已啟動的應(yīng)用程序加入所述應(yīng)用程序鏈表;所述應(yīng)用程序鏈表中的每一應(yīng)用程序通過其狀態(tài)接口向所述應(yīng)用程序鏈表中的其他應(yīng)用程序廣播本程序的狀態(tài)消息以及接收來自所述應(yīng)用程序鏈表中的其他應(yīng)用程序的狀態(tài)消息。
[0025]為了便于監(jiān)控各應(yīng)用程序的狀態(tài),可以建立應(yīng)用程序鏈表,將已啟動的應(yīng)用程序加入應(yīng)用程序鏈表中,在應(yīng)用程序鏈表中的各應(yīng)用程序能夠相互廣播自己的狀態(tài)消息。在應(yīng)用程序鏈表中的應(yīng)用程序監(jiān)測到其他應(yīng)用程序的狀態(tài)消息時,可根據(jù)該其他應(yīng)用程序的狀態(tài)消息來改變自己的運行狀態(tài)。即當(dāng)有新的從應(yīng)用程序啟動時,當(dāng)前前臺的從應(yīng)用程序自動切換至后臺,若當(dāng)前前臺沒有運行從應(yīng)用程序,則主界面應(yīng)用程序自動切換至后臺,無需設(shè)計專門的消息轉(zhuǎn)發(fā)機制,也無需用戶做任何操作。
[0026]在上述任一技術(shù)方案中,優(yōu)選的,在有新的從應(yīng)用程序啟動時,向所述應(yīng)用程序鏈表中的各應(yīng)用程序廣播啟動狀態(tài)消息;在處于前臺焦點狀態(tài)的應(yīng)用程序接收到所述啟動狀態(tài)消息時,從前臺切換至后臺。
[0027]在有新的從應(yīng)用程序啟動時,向應(yīng)用程序鏈表中的應(yīng)用程序廣播啟動狀態(tài)消息,應(yīng)用程序鏈表中的應(yīng)用程序有的可能處于前臺焦點狀態(tài),有的可能在后臺,處于前臺焦點狀態(tài)的應(yīng)用程序在知道有新的應(yīng)用程序啟動時,則自動將自己切換到后臺,無需用戶手動進行切換,減少了用戶的操作。
[0028]在上述任一技術(shù)方案中,優(yōu)選的,在所述主界面應(yīng)用程序接收到連續(xù)的多個從應(yīng)用程序的啟動狀態(tài)消息時,所述主界面應(yīng)用程序向所述連續(xù)的多個從應(yīng)用程序中,除最新啟動的從應(yīng)用程序之外的其他從應(yīng)用程序,發(fā)送暫停狀態(tài)消息;所述除最新啟動的從應(yīng)用程序之外的其他從應(yīng)用程序在接收到所述暫停狀態(tài)消息之后,將本程序切換為暫停狀態(tài)。
[0029]在TV系統(tǒng)運行過程中,Homen可能會連續(xù)收到不同應(yīng)用程序A和B發(fā)來的消息,此時,HomeUI就需要判斷這些消息,例如A要啟動,B也要啟動,由于不能同時顯示A和B,這時HomeUI就需要向A發(fā)送pause命令,使B處于顯示狀態(tài)。
[0030]在上述任一技術(shù)方案中,優(yōu)選的,在所述應(yīng)用程序鏈表中的任一從應(yīng)用程序退出或隱藏時,廣播退出狀態(tài)消息;在處于后臺狀態(tài)的主界面應(yīng)用程序或其他從應(yīng)用程序在接收到所述退出狀態(tài)消息后,根據(jù)各自的啟動記錄確定是否從后臺切換至前臺,其中所述啟動記錄記錄應(yīng)用程序之間的啟動順序關(guān)系。
[0031]在另一種場景中,在應(yīng)用程序鏈表中的應(yīng)用程序由于用戶的操作而退出或隱藏時,其也向應(yīng)用程序鏈表中的其他應(yīng)用程序廣播其退出的狀態(tài)消息,主界面應(yīng)用程序和其他已啟動的從應(yīng)用程序需根據(jù)之前的啟動記錄來確定自己是否需要顯示在前臺,處于焦點狀態(tài),同樣不需要用戶做任何動作就能夠完成焦點切換。
[0032]在上述任一技術(shù)方案中,優(yōu)選的,在所述主界面應(yīng)用程序或所述其他從應(yīng)用程序根據(jù)各自的啟動記錄,確定退出或隱藏的從應(yīng)用程序由本程序啟動時,所述主界面應(yīng)用程序或所述其他從應(yīng)用程序從后臺切換至前臺。
[0033]只有處于焦點的應(yīng)用程序才能響應(yīng)遙控器事件。例如主界面應(yīng)用程序為C,當(dāng)前從應(yīng)用程序B在后臺運行,從應(yīng)用程序A處于焦點狀態(tài)。當(dāng)用戶要求A關(guān)閉時,按Exit按鍵退出A,此時A在退出之前會廣播A-stoped消息,然后A就退出應(yīng)用程序鏈表了。此時只有B、C可以接收到A的退出消息。B、C接收到A退出的狀態(tài)消息后,根據(jù)啟動記錄來確定是否改變自己的運行狀態(tài),此時分為兩種情況:
[0034]1.假設(shè)C啟動了 A,那么在A退出時自然就返回到了 C,C處于前臺焦點狀態(tài);
[0035]2.假設(shè)C啟動了 B,B啟動了 A,B在啟動A時,會在自己的進程空間中記錄了啟動A的標(biāo)志,A退出,B就會重新顯示;C會在自己的程序中記錄當(dāng)前應(yīng)用程序的啟動列表,例如C啟動了 B,B啟動了 A,它的內(nèi)存中就會記錄[B,A]。當(dāng)收到A的退出消息時,C會知道B應(yīng)該處于顯示狀態(tài),于是C不需要顯示自己。這樣,就能夠避免應(yīng)用程序之間的響應(yīng)混亂,也減少了用戶的操作。
[0036]根據(jù)本發(fā)明的應(yīng)用程序控制方法,不需要設(shè)計單獨的消息轉(zhuǎn)發(fā)模塊,應(yīng)用程序狀態(tài)消息以廣播形式發(fā)出,每一個應(yīng)用程序都可以收到該消息并且判斷是否需要處理該消息??梢苑奖愕墓芾硐到y(tǒng)中應(yīng)用程序的運行狀態(tài),針對不同狀態(tài)控制應(yīng)用程序的顯示與隱藏,以此為基礎(chǔ)實現(xiàn)界面友好的應(yīng)用程序控制系統(tǒng),對于用戶來說,操作更加便捷,使用更加人性化。
[0037]下面結(jié)合圖2和圖3進行一步說明根據(jù)本發(fā)明的應(yīng)用程序控制方法。
[0038]如圖2所示,創(chuàng)建一個應(yīng)用程序鏈表,將系統(tǒng)中所有應(yīng)用程序添加到該應(yīng)用程序鏈表中,每一個應(yīng)用程序都可以向應(yīng)用程序鏈表中的應(yīng)用程序組廣播應(yīng)用程序狀態(tài)消息;每一個應(yīng)用程序都可以獲取該消息,判斷是否需要處理該消息。由于使用了雙向鏈表結(jié)構(gòu),因此鏈表中的節(jié)點可以快速的插入和刪除,也就是說可以快速的注冊應(yīng)用程序,也可以快速的刪除應(yīng)用程序,在查找應(yīng)用程序時,也可以進行前后雙向快速遍歷查找。
[0039]在圖2中,當(dāng)前,該應(yīng)用程序鏈表中有四個應(yīng)用應(yīng)用程序,每個應(yīng)用程序可向其他應(yīng)用程序廣播本程序的運行狀態(tài)的消息以及接收其他應(yīng)用程序廣播的消息,是否響應(yīng)接收到的消息,在于該消息中是否包含本程序的名稱。
[0040]圖2所示的應(yīng)用程序鏈表封裝了不同軟件系統(tǒng)的消息處理機制(例如基于芯片廠商開發(fā)的軟件平臺系統(tǒng),這些軟件系統(tǒng)中可能會對應(yīng)用程序的運行做一些消息管理,但因平臺差異不相互通用),然后建立應(yīng)用程序的Shutdown、stop、pause、resume狀態(tài)控制接口,各接口定義如下描述,應(yīng)用程序通過該接口,可以向系統(tǒng)發(fā)送對應(yīng)的狀態(tài)消息,也可以收到其他應(yīng)用程序發(fā)送來的狀態(tài)消息。同時利用這些消息接口,可將應(yīng)用程序的管理做閉環(huán)處理,不受芯片廠商軟件平臺系統(tǒng)的消息影響,實現(xiàn)一個相對獨立的應(yīng)用程序管理和控制機制。
[0041]狀態(tài)控制接口如下:
[0042]Pause狀態(tài)控制接口:應(yīng)用程序需要暫停時,做一些狀態(tài)保存動作,當(dāng)Resume的時候可以繼續(xù)Pause之前的狀態(tài);
[0043]Resume狀態(tài)控制接口:當(dāng)應(yīng)用程序暫停后,會保存一些運行時的數(shù)據(jù)信息,當(dāng)需要重新運行時,在Resume接口動作中可以重新恢復(fù)這些運行是數(shù)據(jù);
[0044]Stop狀態(tài)控制接口:應(yīng)用程序要停止運行時,在這個接口動作中,可以保存一些運行時數(shù)據(jù),以及釋放占用的系統(tǒng)資源;
[0045]Shutdown狀態(tài)控制接口:強制應(yīng)用程序退出。
[0046]如圖2所示,通過鏈表結(jié)構(gòu),將所有應(yīng)用程序鏈接成應(yīng)用程序隊列。當(dāng)應(yīng)用程序啟動時,將應(yīng)用程序注冊到該鏈表隊列中,從而實現(xiàn)應(yīng)用程序的狀態(tài)消息可以在該隊列中進行廣播。應(yīng)用程序I可以理解為鏈表的頭,應(yīng)用程序4可以理解為鏈表的尾,當(dāng)有應(yīng)用程序2退出時,應(yīng)用程序I的下一個應(yīng)用就會變成應(yīng)用程序3,應(yīng)用程序3的前一個就會變成應(yīng)用程序I ;當(dāng)有應(yīng)用程序5啟動時,應(yīng)用程序4的下一個應(yīng)用就會變成應(yīng)用程序5,應(yīng)用程序I的前一個應(yīng)用就會變成應(yīng)用程序5。
[0047]應(yīng)用程序鏈表中的任一應(yīng)用程序通過其狀態(tài)接口可向應(yīng)用程序鏈表中的其他應(yīng)用程序廣播本程序的狀態(tài)消息或接收來自其他應(yīng)用程序的廣播消息,形成了消息廣播機制。利用上面應(yīng)用程序鏈表中的消息廣播機制,通過Π工具設(shè)計一個GUI應(yīng)用程序(即主界面應(yīng)用程序)來統(tǒng)一組織顯示系統(tǒng)中的其他應(yīng)用程序(即從應(yīng)用程序),并且通過判斷消息狀態(tài),實現(xiàn)對其他應(yīng)用程序的焦點控制。
[0048]舉例說明,在應(yīng)用程序A正在運行時,應(yīng)用程序B被啟動,應(yīng)用程序B被加入應(yīng)用程序鏈表中,應(yīng)用程序B向應(yīng)用程序鏈表中的其他應(yīng)用程序廣播了 B-Started消息,應(yīng)用程序A收到該消息后,判斷出其不能與應(yīng)用程序B同時顯示,于是A就隱藏或者退出本程序,并向應(yīng)用程序鏈表廣播退出消息。
[0049]又例如,主界面應(yīng)用程序A正在運行,在接收到用戶的操作指令后需要啟動應(yīng)用程序B,于是主界面應(yīng)用程序A向應(yīng)用程序鏈表中的應(yīng)用程序廣播start B的消息,如果應(yīng)用程序B已在應(yīng)用程序鏈表中,則應(yīng)用程序B在接收到該消息后,發(fā)現(xiàn)消息有中本程序的名稱,立即響應(yīng)該消息。應(yīng)用程序B就被顯示出來。同時應(yīng)用程序B向外廣播B-started消息,此時如果主界面應(yīng)用程序A接收到該B-started消息后,判斷不能其與應(yīng)用程序B同時顯示,則應(yīng)用程序A就會隱藏或者退出本程序。
[0050]由于用戶的操作,將處于焦點狀態(tài)的B被關(guān)閉時,B向外廣播退出消息,已啟動的應(yīng)用程序在接收到該退出消息后,根據(jù)記錄的啟動順序判斷是否要顯示本程序。
[0051]假設(shè)A啟動C,C啟動B,則當(dāng)C接收到B的退出消息之后,根據(jù)啟動記錄知道應(yīng)該顯示自己,于是將C切換至前臺焦點狀態(tài),A雖然也能夠收到B的退出消息,但由于A啟動C,因此知道自己不能切換至前臺焦點狀態(tài),這樣就能夠避免A與C之間的切換沖突。如圖3A所示,302是主界面應(yīng)用程序,該應(yīng)用程序需要有交互化的UI,即電視機中的Homen,作為其他應(yīng)用程序(稱之為從應(yīng)用程序)的啟動入口。該其他應(yīng)用程序即如304所示的應(yīng)用程序(包括播放器、瀏覽器、電子書和詞典)。用戶可在Homen進行選擇啟動從應(yīng)用程序,在啟動瀏覽器時,主界面應(yīng)用程序根據(jù)配置文件的程序路徑,廣播啟動瀏覽器的消息,瀏覽器在接收到該啟動消息后啟動。
[0052]如圖3B所示,主界面應(yīng)用程序(HomeUI) 300上有兩個從應(yīng)用程序,分別是應(yīng)用程序A和應(yīng)用程序B,當(dāng)用戶利用遙控器在HomeH上選擇啟動應(yīng)用程序A時,主界面應(yīng)用程序向外廣播啟動應(yīng)用程序A的消息并隱藏本程序,應(yīng)用程序A接收到該消息之后,判斷該消息中包括自己的名稱,因此響應(yīng)該消息,進入前臺被顯示,并向外廣播其顯示消息(其他應(yīng)用程序例如應(yīng)用程序B也能接收到該消息,但由于該消息與應(yīng)用程序B不相關(guān),因此應(yīng)用程序B沒有響應(yīng)該消息)。主界面應(yīng)用程序300接收到該消息之后,判斷其不能與應(yīng)用程序A同時顯示,于是隱藏本程序。當(dāng)應(yīng)用程序A退出時,其也向外廣播其退出消息,主界面應(yīng)用程序300接收到該消息之后,顯示本程序,主界面應(yīng)用程序300處于前端的焦點狀態(tài),可以響應(yīng)遙控器等控制設(shè)備的指令,與用戶進行交互。
[0053]若在應(yīng)用程序A退出時,應(yīng)用程序B處于后臺暫停狀態(tài),則當(dāng)應(yīng)用程序B接收到應(yīng)用程序A退出的消息時,顯示本程序,并向外廣播其顯示的消息,主界面應(yīng)用程序300在接收到應(yīng)用程序B顯示的消息時,判斷其不能與應(yīng)用程序B同時顯示,于是主界面應(yīng)用程序300繼續(xù)運行在后臺等待其他應(yīng)用程序的消息。
[0054]因此,主界面應(yīng)用程序可以啟動其他應(yīng)用程序,然后將自己隱藏,并且當(dāng)主界面應(yīng)用程序收到其他應(yīng)用程序的Stop消息后,又可以將自己顯示。這樣就保證了從Homen啟動的應(yīng)用程序退出后,電視又可以返回到Homen上,減少了用戶的操作步驟,提升了用戶體驗。
[0055]需說明的是,在本發(fā)明中,當(dāng)應(yīng)用程序A處于前臺運行狀態(tài)時,它只需要關(guān)心是否收到了 pause、stop和shutdown這些控制消息,在設(shè)計TV系統(tǒng)時,不會有多個應(yīng)用程序同時向同一個應(yīng)用程序發(fā)送兩種不同的控制消息,并且消息接收有先后順序,先收到的消息會被先處理。
[0056]本發(fā)明還提供了應(yīng)用上述任一實施例中所述描述的應(yīng)用程序控制方法的終端,該終端可以是基于LINUX系統(tǒng)的電視機。
[0057]以上結(jié)合附圖詳細說明了根據(jù)本發(fā)明的應(yīng)用程序管理和控制方案,考慮到在基于Linux的TV系統(tǒng)中,沒有相應(yīng)的應(yīng)用程序管理機制,所有應(yīng)用程序都是單任務(wù)獨占式運行,各應(yīng)用程序之間的交互性差,同時LINUX系統(tǒng)本身具有的廣播消息也僅限于一些系統(tǒng)消息。應(yīng)用程序之間缺乏交互,用戶操作較為繁瑣,因此本發(fā)明設(shè)計了一種通用的應(yīng)用程序控制方法,每個應(yīng)用程序具有相應(yīng)的狀態(tài)接口,應(yīng)用程序之間可通過狀態(tài)接口進行消息接收和廣播,實現(xiàn)應(yīng)用程序之間的消息交互,各應(yīng)用程序根據(jù)其他應(yīng)用程序廣播的狀態(tài)消息來確定是否改變本程序的運行狀態(tài),從而完成應(yīng)用程序的管理與控制,從而免去了用戶繁瑣的操作,提升了用戶體驗。
[0058]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種應(yīng)用程序控制方法,其特征在于,包括: 終端中的應(yīng)用程序包括主界面應(yīng)用程序和從應(yīng)用程序,所述主界面應(yīng)用程序作為各從應(yīng)用程序的啟動入口; 所述主界面應(yīng)用程序和每一所述從應(yīng)用程序均具有對應(yīng)的狀態(tài)接口,所述主界面應(yīng)用程序和每一所述從應(yīng)用程序均通過各自的狀態(tài)接口接收來自其他應(yīng)用程序的狀態(tài)消息以及廣播本程序的狀態(tài)消息; 所述終端中的每一應(yīng)用程序根據(jù)接收到的狀態(tài)消息和程序當(dāng)前運行狀態(tài)確定是否改變本程序的運行狀態(tài),以實現(xiàn)焦點切換。
2.根據(jù)權(quán)利要求1所述的應(yīng)用程序控制方法,其特征在于,每一應(yīng)用程序?qū)?yīng)的狀態(tài)接口均包括暫停狀態(tài)接口、重新運行狀態(tài)接口、停止?fàn)顟B(tài)接口、退出狀態(tài)接口, 其中,所述暫停狀態(tài)接口用于接收或廣播暫停狀態(tài)消息,并在應(yīng)用程序暫停時,保存當(dāng)前狀態(tài)信息,所述重新運行狀態(tài)接口用于接收或廣播恢復(fù)運行狀態(tài)消息,并在應(yīng)用程序暫停時,保存當(dāng)前運行數(shù)據(jù),所述停止?fàn)顟B(tài)接口用于接收或廣播停止?fàn)顟B(tài)消息,在應(yīng)用程序停止運行時,釋放占用資源,所述退出狀態(tài)接口用于接收或廣播強制退出狀態(tài)消息,強制應(yīng)用程序退出。
3.根據(jù)權(quán)利要求1所述的應(yīng)用程序控制方法,其特征在于,所述主界面應(yīng)用程序還通過其狀態(tài)接口接收基于用戶指令生成的控制消息,并將所述控制消息廣播至每一所述從應(yīng)用程序,所述控制消息中包含程序名稱; 所述從應(yīng)用程序接收到所述控制消息后,判斷所述控制消息是否包含本程序的名稱,若包含有本程序的名稱,則響應(yīng)所述控制消息,改變本程序的運行狀態(tài),所述控制消息包括啟動控制消息、暫??刂葡ⅰ⒅匦逻\行控制消息、退出控制消息。
4.根據(jù)權(quán)利要求3所述的應(yīng)用程序控制方法,其特征在于,在所述從應(yīng)用程序先后接收到多個具有不同內(nèi)容的控制消息時`,所述從應(yīng)用程序按照先后順序處理所接收到的多個不同的控制消息。
5.根據(jù)權(quán)利要求1至4中任一項所述的應(yīng)用程序控制方法,其特征在于,還包括: 建立應(yīng)用程序鏈表,將已啟動的應(yīng)用程序加入所述應(yīng)用程序鏈表; 所述應(yīng)用程序鏈表中的每一應(yīng)用程序通過其狀態(tài)接口向所述應(yīng)用程序鏈表中的其他應(yīng)用程序廣播本程序的狀態(tài)消息以及接收來自所述應(yīng)用程序鏈表中的其他應(yīng)用程序的狀態(tài)消息。
6.根據(jù)權(quán)利要求5所述的應(yīng)用程序控制方法,其特征在于, 在有新的從應(yīng)用程序啟動時,向所述應(yīng)用程序鏈表中的各應(yīng)用程序廣播啟動狀態(tài)消息; 在處于前臺焦點狀態(tài)的應(yīng)用程序接收到所述啟動狀態(tài)消息時,從前臺切換至后臺。
7.根據(jù)權(quán)利要求6所述的應(yīng)用程序控制方法,其特征在于,在所述主界面應(yīng)用程序接收到連續(xù)的多個從應(yīng)用程序的啟動狀態(tài)消息時,所述主界面應(yīng)用程序向所述連續(xù)的多個從應(yīng)用程序中除最新啟動的從應(yīng)用程序之外的其他從應(yīng)用程序,發(fā)送暫停狀態(tài)消息; 所述除最新啟動的從應(yīng)用程序之外的其他從應(yīng)用程序在接收到所述暫停狀態(tài)消息之后,將本程序的運行狀態(tài)改變?yōu)闀和顟B(tài)。
8.根據(jù)權(quán)利要求5所述的應(yīng)用程序控制方法,其特征在于,在所述應(yīng)用程序鏈表中的任一從應(yīng)用程序退出或隱藏時,廣播退出狀態(tài)消息; 在處于后臺狀態(tài)的主界面應(yīng)用程序或其他從應(yīng)用程序在接收到所述退出狀態(tài)消息后,根據(jù)各自的啟動記錄確定是否從后臺切換至前臺,其中所述啟動記錄記錄應(yīng)用程序之間的啟動順序關(guān)系。
9.根據(jù)權(quán)利要求8所述的應(yīng)用程序控制方法,其特征在于,在所述主界面應(yīng)用程序或所述其他從應(yīng)用程序根據(jù)各自的啟動記錄,確定退出或隱藏的從應(yīng)用程序由本程序啟動時,所述主界面應(yīng)用程序或所述其他從應(yīng)用程序從后臺切換至前臺。
10.根據(jù)權(quán)利要求1至9中任一項所述的應(yīng)用程序控制方法,其特征在于,所述終端為基于LINUX系統(tǒng)的電視機。
【文檔編號】G06F9/46GK103729240SQ201310636256
【公開日】2014年4月16日 申請日期:2013年12月2日 優(yōu)先權(quán)日:2013年12月2日
【發(fā)明者】胡孝鵬, 李霞 申請人:青島海信電器股份有限公司