專利名稱:用于在重啟應用程序時使用應用程序狀態(tài)歷史信息的方法、軟件和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及軟件應用程序的重啟(re-launching),且更明確地說,涉及多個軟件應用程序的受控重啟。
背景技術(shù):
技術(shù)上的進步導致個人計算設(shè)備變得越來越小且越來越強大。舉例來說,目前存在各種小型、輕質(zhì)且用戶可容易攜帶的便攜式無線電話、個人數(shù)字助理(PDA)和傳呼設(shè)備。通常,這些設(shè)備嚴重受資源約束。舉例來說,屏幕尺寸、可用的存儲器量和文件系統(tǒng)空間、輸入和輸出能力的大小和處理能力每一者都受到小型設(shè)備的制約。
某些設(shè)備和平臺僅允許單一實例的應用程序。在這些情況下,任何一次只能執(zhí)行一個版本的應用程序。這限制了可在任何一次運行的實例的數(shù)目。因而,響應于對重新執(zhí)行受限于一個實例的當前運行的應用程序的嘗試,必須終止當前版本的應用程序并起始一個新的應用程序,或必須在允許當前執(zhí)行的版本繼續(xù)執(zhí)行的情況下拒絕重新執(zhí)行的請求。
某些設(shè)備是多重框架(multiple frame)的,且允許不同的應用程序在向用戶顯示時呈開窗顯示。這些設(shè)備通常不會將應用程序限于單一實例。同樣,只要應用程序本身不將其限于一個實例,設(shè)備就可允許系統(tǒng)允許執(zhí)行這個應用程序的多個實例。在這些系統(tǒng)中,任何一個特定的應用程序的至少兩個實例的同時活躍狀態(tài)需要所有需用來保持每一所述應用程序處于當前執(zhí)行狀態(tài)的系統(tǒng)資源。其它系統(tǒng)是單框架系統(tǒng),其中僅一個應用程序被認為是當前應用程序,或換句話說,僅一個應用程序被認為具有當前焦點。當前應用程序一般接收并提供所有的用戶輸入和輸出交互。通常,這些系統(tǒng)的特征在于在任何一個時間點處僅有單個應用程序在關(guān)聯(lián)的顯示器上可見。當在認為是當前應用程序的應用程序與希望成為新的當前應用程序的新應用程序之間存在一個往返時,所述新目標應用程序變?yōu)楫斍皯贸绦蚯宜瞿繕藨贸绦蛱畛湎鄳目蚣堋?br>
應用程序常具有不同的模式,其中一模式界定在給定的框架中哪些可見。可在許多模式(多模態(tài))中的任一個模式中起始某些應用程序,同時可僅在單個模式(單模態(tài))中起始其它應用程序。同樣,單模態(tài)應用程序總是在相同的單個預定狀態(tài)中開始執(zhí)行。也就是說,無論何時啟動應用程序,所述應用程序向用戶顯示相同的用戶界面(U/I)屏幕并向用戶提供相同的功能操作。舉例來說,計算機游戲常被設(shè)計成單模態(tài)類型,且當啟動時,所述應用程序向用戶顯示相同的游戲開啟視圖,通常為游戲的標準開始點。相比而言,多模態(tài)應用程序是可在許多預定狀態(tài)中的任一狀態(tài)中開始執(zhí)行的應用程序。同樣,當啟動所述應用程序時,取決于所需的模式,所述應用程序向用戶顯示應用程序的一個特定的所需模式與機能。舉例來說,某些電子郵件程序被設(shè)計為多模態(tài)應用程序,其中(例如)一個模式是“寫作”模式,同時(例如)另一模式是“閱讀新郵件”模式。同樣,當啟動時,必須起始所述電子郵件程序以執(zhí)行給定模式中的一個模式。
在單一實例環(huán)境中啟動多模態(tài)應用程序時,在任何環(huán)境中,所述應用程序必須在其被給定的多個模式中的一個模式中開始執(zhí)行。然而,當在單一實例環(huán)境中需要切換到不同模式時,必須重啟多模態(tài)應用程序以在新的模式中開始執(zhí)行。當重啟時,會丟失先前的模式信息,且因此不能通過任何重新執(zhí)行或重啟所述應用程序而重新得到。同樣,應用程序的不同模式中的每一者必須呈現(xiàn)為單獨的應用程序,其需要消耗其自身的存儲器、文件系統(tǒng)和類似物。因此,盡管在不同模式之間切換之前所需的應用程序可能在執(zhí)行,但在新的模式中同一應用程序必須作為單獨的應用程序重新執(zhí)行。關(guān)閉和開啟應用程序的過程的每一者需要大量使用有限的資源,尤其在嚴重受資源約束的設(shè)備中。
某些應用程序已知具有多個狀態(tài),其中某一動態(tài)應用程序狀態(tài)信息會影響所述應用程序的有用性。與應用程序模式不同,所述信息可被稱作用戶界面數(shù)據(jù)信息。所述用戶界面數(shù)據(jù)信息可包括(例如)來自瀏覽器應用程序的程序前向和后向鏈接信息,其有用于用戶操作所述應用程序。在使用一瀏覽器且已產(chǎn)生前向和后向鏈接的集合的情況下,且然后沒有在所述初始的瀏覽器應用程序內(nèi)接著執(zhí)行新的瀏覽器應用程序的情況下,所述新瀏覽器內(nèi)的操作會在沒有任何前向和后向鏈接的情況下開始,且如果用戶希望轉(zhuǎn)到初始的瀏覽器應用程序上的先前鏈接,那么不會向用戶呈現(xiàn)執(zhí)行所述操作的選項。
啟動其它應用程序的應用程序通常具有有限的操作能力。舉例來說,當終止由先前的當前應用程序調(diào)用的應用程序時,所述系統(tǒng)不提供對先前的當前應用程序的反向跟蹤(或重啟)。類似地,當前系統(tǒng)不提供歷史信息的通過來用于先前的當前應用程序的任何重啟。通常,舉例來說,在至少一個電子郵件應用程序中,在電子郵件應用程序當前正執(zhí)行為“寫作”模式中的當前應用程序的情況下,且在所述模式中設(shè)備接收到新電子郵件消息的接收通知時,接著執(zhí)行其中顯示新電子郵件的新電子郵件應用程序。另外,在至少一個電子郵件應用程序中,且在相同的情形下,所述應用程序不在新模式中執(zhí)行應用程序,而是將當前應用程序保持為當前應用程序并忽略電子郵件通知消息。
因此在所屬領(lǐng)域的技術(shù)中需要一種設(shè)備或平臺,其支持重啟應用程序以使得所述重啟包括使用與所述應用程序的先前重啟相關(guān)聯(lián)的相同模式和/或狀態(tài)信息來執(zhí)行應用程序。所屬領(lǐng)域的技術(shù)中還需要一種設(shè)備或平臺,其支持在不需要起始應用程序的任何額外實例的情況下重啟多模式應用程序。
發(fā)明內(nèi)容
本文所揭示的實施例解決了上述需要,其包括(例如)一個或一個以上實施例,其中使用方法、軟件和裝置來在計算設(shè)備上控制并執(zhí)行應用程序,包括保存應用程序狀態(tài)歷史信息。所述應用程序狀態(tài)歷史信息含有與第一應用程序的執(zhí)行相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息的歷史快照。此外,所述經(jīng)保存的應用程序狀態(tài)歷史信息經(jīng)保存以用于隨后用于第一應用程序的重啟。另外,所述實施例中還包括在計算設(shè)備上啟動第二應用程序。
在至少一個實施例中,使用方法、軟件和裝置來檢索經(jīng)保存的應用程序狀態(tài)歷史信息。所述應用程序狀態(tài)歷史信息含有與先前在計算設(shè)備上執(zhí)行的先前第一應用程序相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息的歷史快照。另外,所述實施例使用檢索到的應用程序狀態(tài)歷史信息在計算設(shè)備上重啟先前的第一應用程序。
在至少一個實施例中,使用方法、軟件和裝置在保存與所述第一應用程序相關(guān)聯(lián)的應用程序狀態(tài)歷史信息的同時,退出在計算設(shè)備上執(zhí)行的第一應用程序。響應于退出第一應用程序而啟動第二應用程序。另外,退出第二應用程序。檢索與所述第一應用程序相關(guān)聯(lián)的經(jīng)保存的應用程序狀態(tài)歷史信息。響應于退出第二應用程序而在計算設(shè)備上重啟所述第一應用程序。使用檢索到的應用程序狀態(tài)歷史信息重啟所述第一應用程序。
至少一個實施例包括用于在計算設(shè)備上執(zhí)行第一應用程序的方法、軟件和裝置。從第一應用程序產(chǎn)生對第二應用程序的調(diào)用。響應于檢測到對第二應用程序的調(diào)用而退出所述第一應用程序。響應于對所述第二應用程序的調(diào)用而保存與所述第一應用程序相關(guān)聯(lián)的應用程序狀態(tài)歷史信息。同樣,響應于對所述第二應用程序的調(diào)用而啟動所述第二應用程序。所述實施例檢測所述第二應用程序的終止。響應于檢測到所述第二應用程序的終止而檢索與所述第一應用程序相關(guān)聯(lián)的經(jīng)保存的應用程序狀態(tài)歷史信息。所述實施例響應于檢測到所述第二應用程序的終止,使用檢索到的應用程序狀態(tài)歷史信息重啟第一應用程序。
在至少一個實施例中包括方法、軟件和裝置,其使用存儲器、存儲在存儲器中且可操作來產(chǎn)生動態(tài)應用程序狀態(tài)信息的應用程序、存儲在應用程序從其中執(zhí)行的存儲器中的運行時間環(huán)境,和耦合到所述存儲器并可操作來執(zhí)行保存應用程序狀態(tài)歷史信息的代碼的處理器,其中所述應用程序狀態(tài)歷史信息含有動態(tài)應用程序狀態(tài)信息的歷史快照。所述動態(tài)應用程序狀態(tài)信息與當前在計算設(shè)備上執(zhí)行的應用程序相關(guān)聯(lián)。在實施例中,應用程序狀態(tài)歷史信息用于在計算設(shè)備上當前運行的應用程序的隨后重啟。
至少一個實施例包括方法、軟件和裝置,其使用存儲器、存儲在存儲器中且可操作來產(chǎn)生動態(tài)應用程序狀態(tài)信息的應用程序、應用程序從其中執(zhí)行的運行時間環(huán)境,和耦合到所述存儲器并可操作來執(zhí)行檢索經(jīng)保存的應用程序狀態(tài)歷史信息的代碼的處理器。所述應用程序狀態(tài)歷史信息含有與先前的目標應用程序相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息的歷史快照,其中所述先前的目標應用程序是先前在計算設(shè)備上執(zhí)行的。
至少一個實施例的至少一個優(yōu)點包括提供支持退回到先前運行的應用程序的先前模式和/或狀態(tài)中的功能的能力。此外,至少一個實施例的至少一個優(yōu)點包括提供當試圖重啟同一應用程序時保留當前運行程序的活躍執(zhí)行的能力。至少一個實施例的至少一個優(yōu)點包括提供在隨后使用不同的模式對同一應用程序調(diào)用后僅維持多模式應用程序的單個實例的能力。至少一個實施例的至少一個優(yōu)點包括保存存儲器和處理器資源,以及提供更佳的用戶體驗,且具有使設(shè)備在不起始應用程序的執(zhí)行的情況下退回到先前執(zhí)行的應用程序的能力。
在檢閱整個申請案(包括以下部分
具體實施方式
和權(quán)利要求書)之后,本發(fā)明的其它方面、優(yōu)點和特征將變得明了。
通過參考結(jié)合附圖時進行的以下詳細描述,本文所述的實施例的前述方面和附隨優(yōu)點將變得更容易明了,附圖中圖1展示用于使用應用程序狀態(tài)歷史信息執(zhí)行應用程序的計算設(shè)備的一個實施例;圖2展示一流程圖的一個實施例,所述流程圖反映出使用應用程序狀態(tài)歷史信息在計算設(shè)備上執(zhí)行應用程序的方法;圖3展示一數(shù)據(jù)表的一個實施例,所述數(shù)據(jù)表反映出在計算設(shè)備上執(zhí)行應用程序的方法并包括示范性動態(tài)應用程序狀態(tài)信息的逐步內(nèi)容;圖4展示在計算設(shè)備上執(zhí)行應用程序的方法的一個實施例,所述方法包括保存應用程序狀態(tài)歷史信息和啟動第二應用程序;圖5展示在計算設(shè)備上執(zhí)行應用程序的方法的一個實施例,所述方法包括檢索應用程序狀態(tài)歷史信息和重啟先前的第一應用程序;
圖6展示使用應用程序狀態(tài)歷史信息在計算設(shè)備上執(zhí)行應用程序的方法的一個實施例;和圖7展示使用應用程序狀態(tài)歷史信息在計算設(shè)備上執(zhí)行應用程序的方法的一個實施例。
具體實施例方式
本文使用詞“示范性”來指“充當范例、實例或說明”。本文中被描述為“示范性”的任何實施例無必要理解為比其它實施例優(yōu)選或有利。
以下詳細描述描述用于在計算設(shè)備上執(zhí)行應用程序的方法、軟件和裝置,包括用于使用應用程序狀態(tài)歷史信息控制在計算設(shè)備上執(zhí)行應用程序的方法、軟件和裝置。在一個或一個以上實施例中,所述計算設(shè)備具有嵌入的控制器和有限資源(即有限的存儲器容量、顯示區(qū)域和文件系統(tǒng)空間),且所述計算設(shè)備經(jīng)操作來利用應用程序狀態(tài)歷史信息控制駐存的應用程序的執(zhí)行。
在一個或一個以上實施例中,用于在計算設(shè)備上執(zhí)行應用程序的系統(tǒng)(例如)通過提供對設(shè)備專用資源的一般化調(diào)用而與在用于簡化設(shè)備操作的計算設(shè)備上執(zhí)行的運行時間環(huán)境交互。一個所述運行時間環(huán)境是由California,San Diego的QUALCOMM公司開發(fā)的無線二進制運行時間環(huán)境(Binary Runtime Environment for Wireless,BREWTM)軟件平臺。在以下描述中,將假設(shè)用于在計算設(shè)備上執(zhí)行應用程序的系統(tǒng)是實施在執(zhí)行運行時間環(huán)境(例如BREW軟件平臺)的便攜式設(shè)備上。然而,用于在計算設(shè)備上執(zhí)行應用程序的系統(tǒng)的一個或一個以上實施例適合與其它類型的運行時間環(huán)境一起使用來控制應用程序在計算設(shè)備上的執(zhí)行。
圖1說明計算設(shè)備100的一個示范性實施例。如本文所用的“計算設(shè)備”包括一個或一個以上執(zhí)行存儲在存儲器中的軟件模塊的處理電路,例如微處理器、數(shù)字信號處理器(DSP)、微控制器、便攜式無線電話、個人數(shù)字助理(PDA)和傳呼設(shè)備,或硬件、存儲在存儲器中的軟件和/或其中保持應用程序的固件的任何合適的組合。所述設(shè)備包括存儲器102、網(wǎng)絡(luò)I/O接口104、用戶I/O接口106、處理器108和總線110。盡管存儲器102展示為RAM的一個連續(xù)單元,但其它實施例將多個位置和多種類型的存儲器用作存儲器102。網(wǎng)絡(luò)I/O接口104經(jīng)由總線110向連接到網(wǎng)絡(luò)的所有設(shè)備提供輸入和輸出。用戶I/O接口106向計算設(shè)備100的用戶提供輸入和輸出。處理器108對經(jīng)由總線110提供的指令和數(shù)據(jù)進行操作。
位于存儲器102內(nèi)的是第一應用程序112、第二應用程序114、運行時間環(huán)境116、動態(tài)應用程序狀態(tài)信息118和應用程序狀態(tài)歷史信息120。第一應用程序112和第二應用程序114代表可與計算設(shè)備100兼容并能夠與運行時間環(huán)境116交互的任何應用程序。如上文所提到的,運行時間環(huán)境116在計算設(shè)備上執(zhí)行以(例如)通過提供對設(shè)備專用資源的一般化調(diào)用來簡化設(shè)備操作。盡管運行時間環(huán)境被展示為BREWTM,但提供類似機能的其它運行時間環(huán)境116也可用于其它示范性實施例中。
動態(tài)應用程序狀態(tài)信息118包括當在所述設(shè)備上執(zhí)行應用程序時所使用的信息的全部或一部分。動態(tài)應用程序狀態(tài)信息118是能夠在應用程序執(zhí)行期間進行更新和改變的數(shù)據(jù)。所述動態(tài)應用程序狀態(tài)信息118可包括以下任何一者或多者特定的應用程序標識符、應用程序模式信息、用戶界面數(shù)據(jù)信息,和可存儲在變量、寄存器以及其它存儲數(shù)據(jù)結(jié)構(gòu)中的其它類似信息。
應用程序標識符包括唯一識別特定應用程序的信息。因此,通常每一應用程序標識符會代表一組唯一的應用程序代碼。然而,在一個示范性實施例中,具有相同代碼的應用程序被給予單獨的應用程序標識符,使得應用程序被系統(tǒng)視為彼此完全不相干。
應用程序模式信息表示(例如)同一應用程序的不同和相異功能方面(例如,電子郵件程序的寫作模式和閱讀新郵件模式),其中應用程序的顯示和/或功能操作在同一應用程序的不同部分之間明顯不同。先前的應用程序模式是先前由于或預期有(例如)來自第一應用程序112的對第二應用程序114的調(diào)用而被懸置的應用程序模式。通常,先前的模式內(nèi)容被存儲到應用程序歷史以用于隨后當從第二應用程序返回時重啟第一應用程序。
用戶界面數(shù)據(jù)信息表示(例如)影響應用程序的潛在執(zhí)行的由所述應用程序產(chǎn)生或使用的幾乎任何數(shù)據(jù)。相對重要的用戶界面數(shù)據(jù)信息的一個范例包括結(jié)合瀏覽器應用程序而存儲的信息,其包括表示先前由所述瀏覽器應用程序訪問的網(wǎng)頁的鏈接列表。所述信息之所以相對重要是因為其很大程度上影響程序的使用,例如前向和后向鏈接一般已知為是屬于大多數(shù)瀏覽器的使用相對頻繁的且相對很有價值的特征。用戶界面數(shù)據(jù)信息的另一范例包括列表位置標記器,使得重啟應用程序時會顯示相同的列表,且在列表中的相同位置處。同樣,用戶界面數(shù)據(jù)信息可包括在退出應用程序時會另外丟失且在重新執(zhí)行相應應用程序時會被認為值得自動載入的任何各種信息。
應用程序狀態(tài)歷史信息120含有可用于動態(tài)應用程序狀態(tài)信息118中的信息類型。同樣,應用程序狀態(tài)歷史信息120表示在特定較早的時間點處出現(xiàn)的動態(tài)應用程序狀態(tài)信息118。因此,應用程序狀態(tài)歷史信息118反映來自先前時間點的舊的動態(tài)應用程序狀態(tài)信息118。盡管所述信息已成歷史,但并不意味所述信息不等于所述設(shè)備的當前狀態(tài),而是僅表示一反映先前時間(其后所述設(shè)備一般可自由改變所述值)的動態(tài)應用程序狀態(tài)信息118的狀態(tài)的歷史快照(snap-shot)。
如圖所示,第一應用程序112、第二應用程序114和運行時間環(huán)境116每一者均含有任選的一組代碼,所述組代碼包括保存應用程序狀態(tài)歷史信息120的代碼122和檢索應用程序狀態(tài)歷史信息120的代碼124。盡管所述代碼被展示為視情況存在于每一所述應用程序和運行時間環(huán)境中,但多個示范性實施例包括將所述代碼定位在涵蓋所述應用程序和運行時間環(huán)境的任何組合中。舉例來說,在一個實施例中,運行時間環(huán)境116含有一模塊,所述模塊由保存應用程序狀態(tài)歷史信息120的代碼122與從第一和第二應用程序112和114中檢索應用程序狀態(tài)歷史信息120的代碼124兩者調(diào)用。通常重要的是代碼存在于至少一個位置中,且所述代碼執(zhí)行保存和檢索以使得應用程序狀態(tài)歷史信息120可用于控制先前運行的應用程序的重新執(zhí)行。
最終,還展示當前應用程序指示符126和先前的當前應用程序指示符127。在相應的時間段處,例如,第二應用程序114是當前的,而第一應用程序112是先前的當前應用程序。如上文所討論,因為計算設(shè)備100僅允許在任何時間點處僅有一個應用程序是當前的,所以在任何一個時間點處僅一個應用程序(即第二應用程序114)可被正確地指示為當前應用程序。
圖2說明用于在計算設(shè)備上執(zhí)行應用程序的流程圖的一個示范性實施例200。明確地說,圖2描述在執(zhí)行所述應用程序中應用程序狀態(tài)歷史信息120的用途。流程開始于步驟202,在該處開始應用程序的初始執(zhí)行。一般來說,可認為應用程序的初始執(zhí)行是對所述應用程序的未來調(diào)用的檢測或是應用程序本身內(nèi)的指令的實際執(zhí)行。
緊隨步驟202處的應用程序的初始執(zhí)行的是步驟206處的執(zhí)行類型的檢測。這里,確定所述執(zhí)行是“啟動”還是“重啟”,其中“啟動”表示對尚未退出的應用程序的初始調(diào)用,且“重啟”表示基于來自隨后退出的程序的一退出的返回而對應用程序的隨后調(diào)用。換句話說,如果對應用程序的調(diào)用是由于來自先前應用程序的后向返回而發(fā)生,那么所述動作是“重啟”,而來自另一應用程序的前向調(diào)用表示“啟動”。
如果檢測到啟動,那么流程繼續(xù)在步驟208處將動態(tài)應用程序狀態(tài)信息118設(shè)定為初始的默認設(shè)定。這里,數(shù)據(jù)應用程序經(jīng)設(shè)定以從不反映所述應用程序的任何先前狀態(tài)歷史的初始狀態(tài)開始。然而,如果檢測到重啟,那么流程就繼續(xù)在步驟210處將動態(tài)應用程序狀態(tài)信息118設(shè)定為相應的應用程序狀態(tài)歷史信息120,使得應用程序被初始化為反映在先前退出應用程序時所存在的設(shè)定的所述應用程序的先前狀態(tài)。然而,在其它實施例中,在重啟時,將動態(tài)應用程序狀態(tài)信息118分配或設(shè)定為與在應用程序的早先退出時(例如當應用程序總是被初始化為初始設(shè)定時)所存在的數(shù)據(jù)不同的數(shù)據(jù)。緊隨啟動或重啟步驟208和210的是步驟212處的繼續(xù)執(zhí)行應用程序的步驟。
在步驟212中應用程序繼續(xù)執(zhí)行,而應用程序經(jīng)監(jiān)視以在步驟214處檢測應用程序的運行狀態(tài)的未來丟失,或在步驟218處檢測應用程序的終止。類似于啟動或重啟的檢測,所述檢測可發(fā)生在應用程序本身內(nèi)或發(fā)生在其外部。在一個實施例中,經(jīng)由與引發(fā)對另一應用程序的調(diào)用的調(diào)用類型命令相關(guān)聯(lián)的計算機指令而檢測到運行狀態(tài)的未來丟失的檢測。在一個實施例中,檢測發(fā)生在當前應用程序外部,例如運行時間環(huán)境或所調(diào)用的應用程序或其它類似位置。此外,一個實施例經(jīng)由與應用程序內(nèi)的退出類型指令相關(guān)聯(lián)的代碼來檢測應用程序的終止。然而,其它實施例在運行時間環(huán)境中或在返回到的應用程序中或其它類似位置檢測所述終止。在一個實施例中,系統(tǒng)將運行狀態(tài)的未來丟失通知給應用程序。
如果在步驟214處存在對運行狀態(tài)的未來丟失的檢測,那么在步驟216處將動態(tài)應用程序狀態(tài)信息118保存到應用程序狀態(tài)歷史信息120。在步驟216處保存動態(tài)應用程序狀態(tài)信息118或在步驟218處檢測到應用程序的終止之后,在步驟220處結(jié)束流程。
圖3說明表格形式的計算設(shè)備100的一個示范性實施例300,所述表格顯示應用程序調(diào)用與系統(tǒng)相關(guān)信息之間的相互間關(guān)系。以四列展示系統(tǒng)相關(guān)信息第1列是應用程序執(zhí)行序列302和關(guān)聯(lián)的應用程序模式304,第2列是當前運行的應用程序306和相應的應用程序模式304,第3列是活躍的實例308,且第4列是應用程序狀態(tài)歷史信息120,其包括先前的目標應用程序312、早先的目標應用程序、先前的模式信息和先前的用戶界面數(shù)據(jù)信息318。此外,表格的行反映出對應于對不同的目標應用程序340、342、344和346的不同的應用程序調(diào)用和返回(320、322、324、326、328、330、332、334、336和338)或啟動和重啟以及對應于來自不同的目標應用程序340、342、344和346的不同的應用程序調(diào)用和返回(320、322、324、326、328、330、332、334、336和338)或啟動和重啟的不同狀態(tài)。
如圖所示,流程在節(jié)點348處開始,其中在“寫作”模式350中起始對電子郵件應用程序340的調(diào)用。因此,當前運行的應用程序306變?yōu)殡娮余]件應用程序340且當前應用程序模式304變?yōu)椤皩懽鳌蹦J?50?;钴S的實例308現(xiàn)包括電子郵件應用程序340,而應用程序狀態(tài)歷史信息120保持為空。
接下來,當前運行的應用程序306(電子郵件34)做出調(diào)用322以作為電子郵件應用程序340的相同目標應用程序而啟動,但采用“閱讀新郵件”的新模式352。例如當用戶試圖寫一新電子郵件以發(fā)送,但同時在所述過程中接著接收到新的郵件消息時此將發(fā)生。在一個實施例中,系統(tǒng)檢測到對相同應用程序的調(diào)用,且作為響應,維持電子郵件應用程序340作為當前運行的應用程序306。因此,僅活躍的實例308維持作為先前的電子郵件應用程序340。然而,在電子郵件應用程序340退出“寫作”模式350的情況下,系統(tǒng)使用應用程序標識符(電子郵件應用程序340)以及使用應用程序模式(“寫作”350)來更新應用程序狀態(tài)歷史信息120。
接下來,當前運行的應用程序306(電子郵件應用程序340)做出調(diào)用324以啟動目標應用程序(游戲應用程序342)。例如,在電子郵件應用程序340處在閱讀新郵件模式352中時顯示含有對游戲應用程序342的鏈接的電子郵件消息的情況下,且在用戶接著選擇執(zhí)行游戲應用程序342的情況下,此會發(fā)生。作為響應,用于游戲應用程序342的新的活躍實例被添加到用于電子郵件應用程序340的已活躍實例。另外,應用程序狀態(tài)歷史信息120中被加入先前的目標應用程序312(電子郵件應用程序340)以及先前的模式信息(“閱讀新郵件”352)。
當運行游戲應用程序342時,用戶(例如)請求排除當前游戲應用程序342的執(zhí)行,因此,執(zhí)行調(diào)用326以使用先前的模式信息316(“閱讀新郵件”模式352)重啟先前的目標應用程序312(電子郵件應用程序340)。當前運行的應用程序306在“閱讀新郵件”352的當前模式下被設(shè)定為電子郵件應用程序340。游戲應用程序342作為活躍的實例308而被移除,僅留下電子郵件應用程序340作為當前活躍實例308。同樣,通過移除包括先前的模式信息316(“閱讀新郵件”)的先前的目標應用程序312(電子郵件)來更新應用程序狀態(tài)歷史信息120。
接下來,回到電子郵件應用程序340并回到“閱讀新郵件”模式352中,用戶(例如)可能會選擇閱讀包括瀏覽器應用程序344可執(zhí)行的圖標的電子郵件。用戶接著(例如)可能執(zhí)行對瀏覽器應用程序344的鏈接以開始其執(zhí)行。在一個實施例中,例如,在執(zhí)行時,瀏覽器使用瀏覽器電子郵件頁面的默認主頁應用程序初始化其本身。當前運行的應用程序306變?yōu)闉g覽器應用程序344,且活躍的實例308經(jīng)擴大以包括瀏覽器應用程序344。同樣,應用程序狀態(tài)歷史信息120經(jīng)更新以包括針對電子郵件應用程序340連同“閱讀新郵件”的應用程序模式352的新條目。
在一個實施例中,瀏覽器應用程序344執(zhí)行電子郵件頁面,其中用戶閱讀含有字處理器文檔的電子郵件。用戶可能接著打開文檔,且在這樣做的過程中起始對目標應用程序330的啟動,其中關(guān)聯(lián)的字處理器應用程序346會開始執(zhí)行。當起始時,活躍的實例308接收字處理器應用程序346的新條目。同樣,應用程序狀態(tài)歷史信息120經(jīng)更新以包括針對瀏覽器應用程序344連同用戶界面數(shù)據(jù)信息的新條目,所述用戶界面數(shù)據(jù)信息包括識別瀏覽器電子郵件頁面354和與瀏覽器應用程序344相關(guān)聯(lián)的任何后向和前向鏈接356的信息。
從字處理器應用程序346內(nèi)部開始操作,由系統(tǒng)檢測到一退出。檢測到退出后,系統(tǒng)執(zhí)行返回調(diào)用332,其使用先前的用戶界面數(shù)據(jù)信息318重啟先前的目標應用程序312(含有對瀏覽器應用程序344的參考),使得瀏覽器應用程序344經(jīng)執(zhí)行且初始化為作為瀏覽器電子郵件頁面354的網(wǎng)頁,且其中關(guān)聯(lián)的瀏覽器鏈接被設(shè)定為早先保存的相應的后向和前向鏈接356。當前運行的應用程序306變?yōu)闉g覽器應用程序344。當前活躍的實例308移除字處理應用程序346。同樣,在移除包括先前的U/I數(shù)據(jù)信息318(瀏覽器電子郵件頁面以及后向和前向鏈接)的先前的目標應用程序312(瀏覽器)時更新應用程序狀態(tài)歷史信息120。
現(xiàn)在執(zhí)行瀏覽器應用程序344,系統(tǒng)可從中檢測到一退出。檢測到退出后,系統(tǒng)執(zhí)行返回調(diào)用334,其使用先前的模式信息316重啟先前的目標應用程序312(當前含有對電子郵件應用程序340的參考),使得電子郵件應用程序340在“閱讀新郵件”模式352中執(zhí)行。當前運行的應用程序306變?yōu)殡娮余]件應用程序340。當前活躍的實例308接著經(jīng)歷瀏覽器應用程序346的移除。同樣,在移除先前的目標應用程序312時更新應用程序狀態(tài)歷史信息120。
執(zhí)行電子郵件應用程序340時,系統(tǒng)可從中檢測到一退出。檢測到退出后,系統(tǒng)執(zhí)行返回調(diào)用336,其使用先前的模式信息316重啟先前的目標應用程序312(當前含有對電子郵件應用程序340的參考),使得電子郵件應用程序340在“寫作”模式352中重啟。在一個實施例中,當試圖重啟相同的應用程序時,系統(tǒng)檢測到電子郵件應用程序作為當前運行的應用程序,且作為響應,將所述應用程序維持為當前應用程序,同時僅將新模式信息傳遞給應用程序。當前運行的應用程序306維持電子郵件應用程序340但現(xiàn)在具有“寫作”的應用程序模式350。當前活躍的實例維持不變。在移除其上一目標應用程序312條目時更新應用程序狀態(tài)歷史信息120。
最終,當執(zhí)行電子郵件應用程序340時,系統(tǒng)可從中檢測到的一最終退出。檢測到退出后,系統(tǒng)執(zhí)行使節(jié)點358處的嵌套應用程序調(diào)用系列結(jié)束的退出338。至少因為應用程序狀態(tài)歷史信息缺少任何額外條目,所以系統(tǒng)意識到嵌套調(diào)用的結(jié)束。一旦退出應用程序,就不存在當前運行的應用程序306,也不存在任何活躍的實例308。
盡管圖3中未圖示,但一個示范性實施例提供不限于僅先前或僅下一應用程序的應用程序啟動和重啟。舉例來說,在一個實施例中,用戶可在不考慮其中出現(xiàn)應用程序的列表內(nèi)的位置的情況下選擇整個列表的應用程序和相應的應用程序狀態(tài)歷史信息120。
圖4說明用于在計算設(shè)備100上執(zhí)行應用程序的方法的一個示范性實施例400。明確來說,圖4描述一種方法,其中在節(jié)點402處開始后,執(zhí)行步驟404,其中所述方法保存應用程序狀態(tài)歷史信息120,其含有與在計算設(shè)備100上第一應用程序112的執(zhí)行相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息118的歷史快照,以用于隨后重啟第一應用程序112。緊隨步驟404的是步驟406,其中所述方法在計算設(shè)備100上啟動第二應用程序114。緊隨第二步驟的是用結(jié)束節(jié)點408指示的所述方法的結(jié)束。
另外,圖4還展示許多任選的標準和步驟408、410、412、414、416、418、420、422、424、426和428。明確來說,任選的標準和步驟408、410、412、414和416每一者均修改步驟404,且其余的任選標準和步驟修改步驟406。第一步驟404視情況經(jīng)修改(408)以視第二應用程序114的啟動而定進行保存。步驟404還視情況經(jīng)修改(410)以使得應用程序狀態(tài)歷史信息120包括模式信息416,模式信息416含有唯一功能模式相關(guān)信息的歷史快照。步驟404還視情況經(jīng)修改(412)以使得應用程序狀態(tài)歷史信息120包括用戶界面數(shù)據(jù)信息418,用戶界面數(shù)據(jù)信息418含有動態(tài)用戶界面數(shù)據(jù)相關(guān)信息118的歷史快照。步驟404還視情況經(jīng)修改(414)以使得應用程序狀態(tài)歷史信息120指示關(guān)聯(lián)的應用程序相對于其它應用程序的順序。步驟404還視情況經(jīng)修改(416),其中計算設(shè)備100是無線設(shè)備。
步驟406還視情況經(jīng)修改(418)以進一步排除應用程序的初始執(zhí)行。步驟406還視情況經(jīng)修改(420)以選擇性地維持第一應用程序在計算設(shè)備100上的執(zhí)行。步驟406還視情況經(jīng)修改(420和422)以檢測與第一應用程序112相關(guān)聯(lián)的應用程序狀態(tài)歷史信息120與與第二應用程序114相關(guān)聯(lián)的信息之間的匹配信息。步驟406還視情況經(jīng)修改(420、422和424),其中匹配信息是應用程序識別信息。步驟406還視情況經(jīng)修改(426)以視檢測第一應用程序112的運行狀態(tài)的未來丟失而定進行啟動。步驟406還視情況經(jīng)修改(428),其中由第一應用程序起始所述啟動。
圖5說明用于在計算設(shè)備100上執(zhí)行應用程序的方法的一個示范性實施例500。具體來說,圖5描述一種方法,其中在節(jié)點502處開始后,執(zhí)行步驟504以檢索經(jīng)保存的應用程序狀態(tài)歷史信息120,其含有與先前在計算設(shè)備100上執(zhí)行的先前的第一應用程序112相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息118的歷史快照。緊隨步驟504的是步驟506,其中所述方法使用檢索到的應用程序狀態(tài)歷史信息118在計算設(shè)備100上重啟先前的第一應用程序112。緊隨第二步驟的是用結(jié)束節(jié)點508指示的所述方法的結(jié)束。
另外,圖5還展示許多任選的標準和步驟508、510、512、514、516、518、520、522、524、526和528。具體來說,任選的標準和步驟508、510、512、514、516和518每一者均修改步驟504,且其余的任選標準和步驟修改步驟506。第一步驟504視情況經(jīng)修改(510)以使得應用程序狀態(tài)歷史信息120包括模式信息304,模式信息304含有唯一功能模式相關(guān)信息的歷史快照。步驟504還視情況經(jīng)修改(510和512)以使用模式信息304重新初始化動態(tài)應用程序狀態(tài)信息118。步驟504還視情況經(jīng)修改(514)以使得應用程序狀態(tài)歷史信息包括應用程序用戶界面數(shù)據(jù)信息,所述應用程序用戶界面數(shù)據(jù)信息含有動態(tài)用戶界面數(shù)據(jù)相關(guān)信息的歷史快照。步驟504還視情況經(jīng)修改(514和516)以使用應用程序用戶界面數(shù)據(jù)信息來重新初始化動態(tài)應用程序狀態(tài)信息。步驟504還視情況經(jīng)修改(518)以使得計算設(shè)備100是無線設(shè)備。
步驟506還視情況經(jīng)修改(520)以排除任何應用程序的初始執(zhí)行。步驟506還視情況經(jīng)修改(522)以選擇性地將當前在計算設(shè)備100上執(zhí)行的應用程序維持為先前的第一應用程序112。步驟506還視情況經(jīng)修改(522和524)以檢測與當前執(zhí)行的應用程序相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息與與先前的第二應用程序相關(guān)聯(lián)的檢索到的應用程序狀態(tài)歷史信息之間的匹配信息。步驟506還視情況經(jīng)修改(522、524和526),其中匹配信息是應用程序識別信息。步驟506還視情況經(jīng)修改(528)以使用應用程序狀態(tài)歷史信息120重新初始化動態(tài)應用程序狀態(tài)信息118。
圖6說明用于在計算設(shè)備100上執(zhí)行應用程序的方法的一個示范性實施例600。具體來說,圖6描述一種方法,其中在節(jié)點602處開始后,執(zhí)行步驟604以退出在計算設(shè)備100上執(zhí)行的第一應用程序112。緊隨步驟604的是步驟606,其中所述方法保存與所述第一應用程序112相關(guān)聯(lián)的應用程序狀態(tài)歷史信息120。
在一個實施例中,僅當?shù)谝粦贸绦?12調(diào)用第二應用程序114時,應用程序狀態(tài)歷史信息120被實際保存(即,在發(fā)生嵌套的調(diào)用之前不需要“前面的”歷史)。然而,在其它實施例中,在調(diào)用第二應用程序114之前,應用程序可預期保存所述信息的需要(即,在用先前的目標應用程序信息312填充應用程序狀態(tài)歷史信息120之前,在第一應用程序112不調(diào)用第二應用程序114的情況下不用等待)——盡管所述情形表現(xiàn)是比較低效的方法,因為其需要使用可能不必要的存儲器和處理時間。
緊隨步驟606的是步驟608,其中所述方法響應于退出第一應用程序112而啟動第二應用程序114。緊隨步驟608的是步驟610,其中所述方法退出第二應用程序114。緊隨步驟610的是步驟612,其中所述方法檢索經(jīng)保存的與第一應用程序112相關(guān)聯(lián)的應用程序狀態(tài)歷史信息120。緊隨步驟612的是步驟614,其中所述方法響應于退出第二應用程序114而使用檢索到的應用程序狀態(tài)歷史信息120在計算設(shè)備100上重啟第一應用程序112。緊隨步驟614的是結(jié)束節(jié)點616,其表示所述方法的結(jié)束。
由四個額外限制618、620、622和624對三個步驟604、608和614視情況進行修改。步驟604視情況經(jīng)修改(618)以使得計算設(shè)備100是無線設(shè)備。步驟608視情況經(jīng)修改(620)以響應于在第一應用程序112與第二應用程序114之間檢測到匹配的應用程序識別信息而選擇性地維持第一應用程序112的執(zhí)行。步驟614視情況經(jīng)修改(622)以響應于在第一應用程序112與第二應用程序114之間檢測到匹配的應用程序識別信息而選擇性地維持第二應用程序112的執(zhí)行。步驟614還視情況經(jīng)修改(624)以使用應用程序狀態(tài)歷史信息120以與先前退出的第一應用程序112相關(guān)聯(lián)的先前的應用程序狀態(tài)歷史信息312重新初始化第一應用程序112。
圖7說明用于在計算設(shè)備100上執(zhí)行應用程序的方法的一個示范性實施例700。具體來說,圖7描述一種方法,其中在節(jié)點702處開始后,執(zhí)行步驟704以在計算設(shè)備100上執(zhí)行第一應用程序112。緊隨步驟704的是步驟706,其中所述方法從第一應用程序112產(chǎn)生對第二應用程序114的調(diào)用。緊隨步驟706的是步驟708,其中所述方法響應于檢測到對第二應用程序114的調(diào)用而退出第一應用程序112。緊隨步驟708的是步驟710,其中所述方法響應于對所述第二應用程序114的調(diào)用而保存與所述第一應用程序112相關(guān)聯(lián)的應用程序狀態(tài)歷史信息120。緊隨步驟710的是步驟712,其中所述方法響應于對所述第二應用程序114的調(diào)用而啟動所述第二應用程序114。緊隨步驟712的是步驟714,其中所述方法檢測所述第二應用程序114的終止。緊隨步驟714的是步驟716,其中所述方法響應于檢測到所述第二應用程序114的終止而檢索經(jīng)保存的與所述第一應用程序112相關(guān)聯(lián)的應用程序狀態(tài)歷史信息120。緊隨步驟716的是步驟718,其中所述方法響應于檢測到所述第二應用程序114的終止,使用檢索到的應用程序狀態(tài)歷史信息120重啟所述第一應用程序112。緊隨步驟718的是結(jié)束節(jié)點720,其表示所述方法的結(jié)束。
由三個額外的限制722、724和726對三個步驟704、712和718視情況進行修改。步驟704視情況經(jīng)修改(722)以使得所述計算設(shè)備100是無線設(shè)備。步驟712視情況經(jīng)修改(724)以響應于在所述第一應用程序112與第二應用程序114之間檢測到匹配的應用程序識別信息而選擇性地維持第一應用程序112的執(zhí)行。步驟718視情況經(jīng)修改(726)以響應于在所述第一應用程序112與所述第二應用程序114之間檢測到匹配的應用程序識別信息而選擇性地維持所述第二應用程序114的執(zhí)行。
所屬領(lǐng)域的技術(shù)人員將進一步理解,結(jié)合本文所揭示的實施例而描述的各種說明性邏輯塊、模塊、電路和算法步驟可實施為電子硬件、計算機軟件或兩者的組合。為了清楚地說明此硬件和軟件的可互換性,上文已一般性地根據(jù)各種說明性組件、區(qū)塊、模塊、電路和步驟的機能對其進行了描述。將所述機能實施為硬件還是軟件取決于施加在整個系統(tǒng)上的特定應用程序和設(shè)計約束。所屬領(lǐng)域的技術(shù)人員可針對每一特定的應用以變化的方式實施所描述的機能,但所述實施方案決策不應理解為脫離本發(fā)明的范圍。
結(jié)合本文中所揭示的實施例而描述的方法或算法的步驟可直接包含在硬件中,包含在由處理器執(zhí)行的軟件模塊中,或包含在其兩者的組合中。軟件模塊可駐存在RAM存儲器、快閃存儲器、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移除式盤、CD-ROM或所屬領(lǐng)域中已知的任何其它形式存儲媒介中。示范性存儲媒介耦合到處理器,使得處理器可從所述存儲媒介讀取信息或?qū)⑿畔懭胨龃鎯γ浇?。作為替代,所述存儲媒介可集成到所述處理器。所述處理器和所述存儲媒介可駐存在ASIC中。ASIC可駐存在用戶終端中。作為替代,所述處理器和所述存儲媒介可駐存為用戶終端中的離散組件。
提供所揭示的實施例的先前描述以使得所屬領(lǐng)域的任何技術(shù)人員均能夠制作或使用本發(fā)明。所屬領(lǐng)域的技術(shù)人員將容易明了對這些實施例的各種修改,且在不脫離本發(fā)明的精神或范圍的情況下,本文所界定的一般原理可應用到其它實施例。因而,不希望本發(fā)明限于本文所示的實施例,而是符合與本文所揭示的原理和新穎特征相一致的最廣泛的范圍。
權(quán)利要求
1.一種在一計算設(shè)備上執(zhí)行應用程序的方法,其包含保存應用程序狀態(tài)歷史信息,以用于所述第一應用程序的一隨后重啟,所述應用程序狀態(tài)歷史信息含有與一第一應用程序在一計算設(shè)備上的執(zhí)行相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息的一歷史快照,;和在所述計算設(shè)備上啟動一第二應用程序。
2.根據(jù)權(quán)利要求1所述的方法,其中所述啟動一第二應用程序的步驟選擇性地排除起始一應用程序的執(zhí)行。
3.根據(jù)權(quán)利要求1所述的方法,其中所述啟動一第二應用程序的步驟進一步包括選擇性地維持所述第一應用程序在所述計算設(shè)備上的執(zhí)行的步驟。
4.根據(jù)權(quán)利要求3所述的方法,其中所述選擇性地維持所述第一應用程序的所述執(zhí)行的步驟進一步包括在與所述第一應用程序相關(guān)聯(lián)的所述應用程序狀態(tài)歷史信息與與所述第二應用程序相關(guān)聯(lián)的信息之間檢測匹配信息的步驟。
5.根據(jù)權(quán)利要求4所述的方法,其中所述匹配信息是應用程序識別信息。
6.根據(jù)權(quán)利要求1所述的方法,其中所述保存應用程序狀態(tài)歷史信息的步驟取決于所述啟動所述第二應用程序的步驟。
7.根據(jù)權(quán)利要求1所述的方法,其中所述啟動所述第二應用程序的步驟取決于一檢測所述第一應用程序的一運行狀態(tài)的一未來丟失的步驟。
8.根據(jù)權(quán)利要求1所述的方法,其中所述應用程序狀態(tài)歷史信息包括模式信息,所述模式信息含有唯一功能模式相關(guān)信息的一歷史快照。
9.根據(jù)權(quán)利要求1所述的方法,其中所述應用程序狀態(tài)歷史信息包括用戶界面數(shù)據(jù)信息,所述用戶界面數(shù)據(jù)信息含有動態(tài)用戶界面數(shù)據(jù)相關(guān)信息的一歷史快照。
10.根據(jù)權(quán)利要求1所述的方法,其中所述應用程序狀態(tài)歷史信息指示關(guān)聯(lián)的應用程序相對于其它應用程序的一順序。
11.根據(jù)權(quán)利要求1所述的方法,其中由所述第一應用程序起始所述第二應用程序的所述啟動。
12.根據(jù)權(quán)利要求1所述的方法,其中所述計算設(shè)備是一無線設(shè)備。
13.一種在一計算設(shè)備上執(zhí)行應用程序的方法,其包含檢索保存的應用程序狀態(tài)歷史信息,所述應用程序狀態(tài)歷史信息含有與先前在一計算設(shè)備上執(zhí)行的一先前的第一應用程序相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息的一歷史快照;和使用所述檢索到的應用程序狀態(tài)歷史信息在所述計算設(shè)備上重啟所述先前的第一應用程序。
14.根據(jù)權(quán)利要求13所述的方法,其中所述重啟所述先前的第一應用程序的步驟排除起始任何應用程序的執(zhí)行。
15.根據(jù)權(quán)利要求13所述的方法,其中所述重啟所述先前的第一應用程序的步驟進一步包括將當前在所述計算設(shè)備上執(zhí)行的所述應用程序選擇性地維持為所述先前的第一應用程序的步驟。
16.根據(jù)權(quán)利要求15所述的方法,其中所述將當前在所述計算設(shè)備上執(zhí)行的所述應用程序選擇性地維持為所述先前的第二應用程序的步驟進一步包括在與當前執(zhí)行的所述應用程序相關(guān)聯(lián)的所述動態(tài)應用程序狀態(tài)信息和與所述先前的第二應用程序相關(guān)聯(lián)的所述檢索到的應用程序狀態(tài)歷史信息之間檢測匹配信息的步驟。
17.根據(jù)權(quán)利要求16所述的方法,其中所述匹配信息是應用程序識別信息。
18.根據(jù)權(quán)利要求13所述的方法,其中所述重啟所述先前的第一應用程序的步驟進一步包含使用應用程序狀態(tài)歷史信息來重新初始化動態(tài)應用程序狀態(tài)信息的步驟。
19.根據(jù)權(quán)利要求13所述的方法,其中所述應用程序狀態(tài)歷史信息包括模式信息,所述模式信息含有唯一功能模式相關(guān)信息的一歷史快照。
20.根據(jù)權(quán)利要求19所述的方法,其進一步包含使用所述模式信息來重新初始化所述動態(tài)應用程序狀態(tài)信息的步驟。
21.根據(jù)權(quán)利要求13所述的方法,其中所述應用程序狀態(tài)歷史信息包括應用程序用戶界面數(shù)據(jù)信息,所述應用程序用戶界面數(shù)據(jù)信息含有動態(tài)用戶界面數(shù)據(jù)相關(guān)信息的一歷史快照。
22.根據(jù)權(quán)利要求21所述的方法,其進一步包含使用所述應用程序用戶界面數(shù)據(jù)信息來重新初始化所述動態(tài)應用程序狀態(tài)信息的步驟。
23.根據(jù)權(quán)利要求13所述的方法,其中所述計算設(shè)備是一無線設(shè)備。
24.一種在一計算設(shè)備上執(zhí)行應用程序的方法,其包含退出在一計算設(shè)備上執(zhí)行的一第一應用程序;保存與所述第一應用程序相關(guān)聯(lián)的應用程序狀態(tài)歷史信息;響應于退出所述第一應用程序而啟動一第二應用程序;退出所述第二應用程序;檢索與所述第一應用程序相關(guān)聯(lián)的所述保存的應用程序狀態(tài)歷史信息;和響應于退出所述第二應用程序,使用所述檢索到的應用程序狀態(tài)歷史信息在所述計算設(shè)備上重啟所述第一應用程序。
25.根據(jù)權(quán)利要求24所述的方法,其中所述啟動一第二應用程序的步驟進一步包括響應于在所述第一應用程序與所述第二應用程序之間檢測到匹配的應用程序識別信息而選擇性地維持所述第一應用程序的執(zhí)行的步驟。
26.根據(jù)權(quán)利要求24所述的方法,其中所述重啟所述第一應用程序的步驟進一步包括響應于在所述第一應用程序與所述第二應用程序之間檢測到匹配的應用程序識別信息而選擇性地維持所述第二應用程序的執(zhí)行的步驟。
27.根據(jù)權(quán)利要求24所述的方法,其中所述重啟所述第一應用程序的步驟進一步包含使用應用程序狀態(tài)歷史信息以與所述先前退出的第一應用程序相關(guān)聯(lián)的先前的狀態(tài)歷史信息重新初始化所述第一應用程序的步驟。
28.根據(jù)權(quán)利要求24所述的方法,其中所述計算設(shè)備是一無線設(shè)備。
29.一種在一計算設(shè)備上執(zhí)行應用程序的方法,其包含在一計算設(shè)備上執(zhí)行一第一應用程序;從所述第一應用程序產(chǎn)生一對一第二應用程序的調(diào)用;響應于檢測到對所述第二應用程序的所述調(diào)用而退出所述第一應用程序;響應于對所述第二應用程序的所述調(diào)用而保存與所述第一應用程序相關(guān)聯(lián)的應用程序狀態(tài)歷史信息;響應于對所述第二應用程序的所述調(diào)用而啟動所述第二應用程序;檢測所述第二應用程序的終止;響應于檢測到所述第二應用程序的所述終止而檢索與所述第一應用程序相關(guān)聯(lián)的所述保存的應用程序狀態(tài)歷史信息;和響應于檢測到所述第二應用程序的所述終止,使用所述檢索到的應用程序狀態(tài)歷史信息重啟所述第一應用程序。
30.根據(jù)權(quán)利要求29所述的方法,其中啟動所述第二應用程序的所述步驟進一步包括響應于在所述第一應用程序與所述第二應用程序之間檢測到匹配的應用程序識別信息而選擇性地維持所述第一應用程序的執(zhí)行的步驟。
31.根據(jù)權(quán)利要求29所述的方法,其中重啟所述第一應用程序的所述步驟進一步包括響應于在所述第一應用程序與所述第二應用程序之間檢測到匹配的應用程序識別信息而選擇性地維持所述第二應用程序的執(zhí)行的步驟。
32.根據(jù)權(quán)利要求32所述的方法,其中所述計算設(shè)備是一無線設(shè)備。
33.一種計算設(shè)備,其包含一存儲器;一應用程序,其存儲在所述存儲器中且可操作以產(chǎn)生動態(tài)應用程序狀態(tài)信息;一運行時間環(huán)境,其存儲在所述應用程序從中執(zhí)行的所述存儲器中;和一處理器,其耦合到所述存儲器且可操作以執(zhí)行保存應用程序狀態(tài)歷史信息以用于隨后在所述計算設(shè)備上重啟所述當前運行的應用程序的代碼,所述應用程序狀態(tài)歷史信息含有與當前在一計算設(shè)備上執(zhí)行的一應用程序相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息的一歷史快照。
34.根據(jù)權(quán)利要求33所述的計算設(shè)備,其中所述保存應用程序狀態(tài)歷史信息的代碼位于所述應用程序和所述運行時間環(huán)境中的至少一者中。
35.根據(jù)權(quán)利要求33所述的方法,其中所述計算設(shè)備是一無線設(shè)備。
36.一種計算設(shè)備,其包含一存儲器;一應用程序,其存儲在所述存儲器中且可操作以產(chǎn)生動態(tài)應用程序狀態(tài)信息;和一運行時間環(huán)境,所述應用程序從中執(zhí)行;和一處理器,其耦合到所述存儲器且可操作以執(zhí)行檢索保存的應用程序狀態(tài)歷史信息的代碼,所述保存的應用程序狀態(tài)歷史信息含有與先前在一計算設(shè)備上執(zhí)行的一應用程序相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息的一歷史快照。
37.根據(jù)權(quán)利要求36所述的計算設(shè)備,其中所述檢索應用程序狀態(tài)歷史信息的代碼位于所述應用程序和所述運行時間環(huán)境中的至少一者中。
38.根據(jù)權(quán)利要求36所述的方法,其中所述計算設(shè)備是一無線設(shè)備。
39.一種包含在一計算機可讀媒介上的計算機程序,所述計算機程序能夠保存應用程序歷史信息,所述計算機程序包含可操作以保存應用程序狀態(tài)歷史信息以用于所述第一應用程序的一隨后重啟的代碼,所述應用程序狀態(tài)歷史信息含有與一第一應用程序在一計算設(shè)備上的執(zhí)行相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息的一歷史快照;和可操作以在所述計算設(shè)備上啟動一第二應用程序的代碼。
40.一種包含在一計算機可讀媒介上的計算機程序,所述計算機程序能夠檢索應用程序歷史信息,所述計算機程序包含可操作以檢索保存的應用程序狀態(tài)歷史信息的代碼,所述應用程序狀態(tài)歷史信息含有與先前在一計算設(shè)備上執(zhí)行的一先前的第一應用程序相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息的一歷史快照;和可操作以使用所述檢索到的應用程序狀態(tài)歷史信息在所述計算設(shè)備上重啟所述先前的第一應用程序的代碼。
41.一種計算設(shè)備,其包含用于保存應用程序狀態(tài)歷史信息以用于所述第一應用程序的一隨后重啟的裝置,所述應用程序狀態(tài)歷史信息含有與一第一應用程序在一計算設(shè)備上的執(zhí)行相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息的一歷史快照裝置;和用于在所述計算設(shè)備上啟動一第二應用程序的裝置。
42.一種計算設(shè)備,其包含用于檢索保存的應用程序狀態(tài)歷史信息的裝置,所述保存的應用程序狀態(tài)歷史信息含有與先前在一計算設(shè)備上執(zhí)行的一先前的第一應用程序相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息的一歷史快照裝置;和用于使用所述檢索到的應用程序狀態(tài)歷史信息在所述計算設(shè)備上重啟所述先前的第一應用程序的裝置。
全文摘要
一種用于保存應用程序狀態(tài)歷史信息的系統(tǒng),所述應用程序狀態(tài)歷史信息含有一與一第一應用程序在一計算設(shè)備上的執(zhí)行相關(guān)聯(lián)的動態(tài)應用程序狀態(tài)信息的歷史快照。所述應用程序狀態(tài)歷史信息經(jīng)保存以用于所述第一應用程序的一隨后重啟。
文檔編號G06F9/48GK1977246SQ200580021365
公開日2007年6月6日 申請日期2005年5月26日 優(yōu)先權(quán)日2004年5月26日
發(fā)明者布萊恩·哈羅德·凱利, 羅伯特·沃克, 馬克·愛德華·奈丹姆 申請人:高通股份有限公司