專利名稱:移動應用上的頁面的自動生存期管理的制作方法
技術領域:
本發(fā)明涉及移動應用,尤其涉及移動應用上的頁面的自動生存期管理。
背景技術:
移動設備當前被廣泛應用。移動設備包括諸如蜂窩電話、智能電話、個人數(shù)字助理、多媒體播放器、其它手持和掌上設備,以及平板或輸入板計算機等等。在移動設備中,常常致力于電池壽命的節(jié)省。一種致力于電池壽命節(jié)省的方法涉及對在移動設備上打開的應用的管理。具體而言,生存期管理發(fā)生在這樣的場景其中用戶打開了應用但隨后導航離開那個應用但沒有在導航離開之前明確地或顯式地關閉該應用。例如,用戶可能打開了消費者關系管理應用,并接著立即通過打開另一個應用(諸如聯(lián)系人列表目錄)而導航離開那個應用。當用戶導航離開消費者關系管理應用時,操作系統(tǒng)可以以不同方式處理用戶導航所離開的應用的生存期管理。歸因于電池生存期和存儲器管理問題,一些操作系統(tǒng)可能已經(jīng)簡單地銷毀最初應用(或?qū)⑵潢P閉)。然而,這可能呈現(xiàn)多個問題。例如,當用戶最后導航回該應用,并且操作系統(tǒng)重新啟動該應用時,那么整個用戶界面信息(諸如顯示在應用的頁面上的控件值)丟失。換言之,當用戶最初打開應用時,用戶可能已經(jīng)將用戶界面狀態(tài)信息或控件值輸入了各控件。這樣的值可以包括,例如,選中或者不選復選框、配置單選按鈕、滾動到可滾動列表的特定點,等等。當用戶隨后導航離開該程序,操作系統(tǒng)可能簡單地銷毀該應用。那么,當用戶隨后導航回該應用時,即使操作系統(tǒng)在那時重新啟動該應用,全部的用戶界面控件狀態(tài)和值以及所顯示的頁面的其它用戶界面狀態(tài)信息丟失。因此,因此用戶不能以與他們離開應用時完全相同的狀態(tài)回到應用。這沒有留給用戶無縫體驗并需要用戶導航回應用的相同位置并重新輸入全部所需的控件值和狀態(tài)信息,這是不希望的和麻煩的。提供以上討論僅用作一般的背景信息,并不旨在幫助確定所要求保護的主題的范圍。
發(fā)明內(nèi)容
當用戶導航回應用時在頁面上還原頁面狀態(tài)信息(諸如界面控件值)的方法是在應用的每頁上寫入事件驅(qū)動的邏輯。那么,當用戶導航離開該應用時,每頁上的控件狀態(tài)和值被儲存,使得當用戶導航回那個應用時它們可以還原(或再水合(rehydrate))到控件。然而,這可能產(chǎn)生大的測試成本。質(zhì)量保證人員通常測試每頁上的每個控件以確保它們正確行動。因此,如果用于保存控件值的受控的關閉和重啟過程被編碼到應用的每頁中,開發(fā)者必須在每頁上測試邏輯以確保控件被正確地儲存并復蘇。在本說明書中,儲存用戶界面狀態(tài)(UI)信息(諸如UI控件狀態(tài)信息和值)并在用戶導航并返回應用時使其復蘇。該功能被結合到應用中,而非結合到為應用的每頁編寫的代碼中。在頁面的實例被創(chuàng)建時,該頁面向墓碑列表(tombstone list)登記其想要埋葬(tombstone)的控件,以指示該頁面上的哪個頁面狀態(tài)信息要在用戶導航離開時儲存并在用戶返回該應用時復蘇。當用戶提供指示導航離開該應用的輸入時,應用訪問墓碑列表,并儲存存在于被稱為墓碑的數(shù)據(jù)結構內(nèi)的埋葬列表中的每個控件的狀態(tài)相關信息。基于正被埋葬的控件的類型來創(chuàng)建墓碑。墓碑內(nèi)的全部這些n頁面狀態(tài)信息被儲存在對應于頁面的當前實例的頁面狀態(tài)詞典數(shù)據(jù)結構中。然后,當用戶導航回該應用時,應用訪問頁面狀態(tài)詞典,并從頁面狀態(tài)詞典內(nèi)的墓碑還原UI頁面狀態(tài)信息的值,使得用戶界面以與用戶導航離開該應用時相同的狀態(tài)顯示。提供本發(fā)明內(nèi)容以便以簡化形式介紹將在以下具體實施方式
中進一步描述的一些概念。本發(fā)明內(nèi)容并非旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。所要求保護的主題不限于解決在背景中提及的任何或所有缺點的實現(xiàn)。
圖1是一個說明性移動設備的框圖。圖1A示出了一應用頁面上的多個控件的示例。圖2示出了墓碑列表的一個實施例。圖3是示出圖1所示系統(tǒng)的操作的一個實施例的流程圖,用于在用戶導航離開應用時儲存用戶界面狀態(tài)信息。圖4示出了狀態(tài)詞典中的條目的一個實施例。圖5是示出圖1所示系統(tǒng)的操作的一個實施例的流程圖,用于在用戶導航返回應用時復蘇用戶界面。圖6是用于在應用中生成指定頁面的類圖的一個實施例。圖7 — 9不出了移動設備的各實施例。圖10是可使用的一個說明性計算環(huán)境的框圖。
具體實施例方式圖1是移動設備10的框圖,移動設備10被示為直接或通過網(wǎng)絡12連接到客戶關系管理(CRM)系統(tǒng)14。在圖1所示的實施例中,移動設備10具有儲存其上的應用16,其本身包括埋葬/再水合組件17、構造器22和墓碑列表28。應用16將作為CRM應用被討論,但是它也可以是任何其它想要的應用。也將注意,應用16可位于CRM系統(tǒng)14上,通過網(wǎng)絡12提供對其的訪問。在那個實施例中,使用云計算體系結構,應用16對于移動設備10而言是可訪問的。然而,為了呈現(xiàn)的目的,示例性描述,應用16駐留在移動設備10上。圖1還示出了,移動設備10說明性地包括操作系統(tǒng)18、用戶界面組件20,以及包括頁堆棧24和實例專用頁面狀態(tài)詞典26的多個不同數(shù)據(jù)存儲。圖1還示出了移動設備10說明性地包括不同于應用16的至少一個其它應用30。在一個說明性實施例中,應用16生成用戶界面顯示頁面,使用用戶界面組件20將用戶界面顯示頁面顯示給用戶32。圖7 — 9示出了移動設備10使用用于生成用戶界面顯示的不同的機制的各種實施例?,F(xiàn)在完全可以說,用戶界面顯示可在顯示屏上、觸敏顯示屏上,或任何其它類型的顯示屏上生成。用戶界面組件20還說明性地包括通過它用戶32可通過用戶界面顯示上的圖形用戶界面元素(或控制元素)輸入信息的機制。例如,用戶32可通過小鍵盤、通過觸摸屏上生成的軟鍵區(qū)顯示、通過使用定點和點擊設備在用戶界面元素上移動光標并選擇它們并輸入想要的信息、使用其它按鈕或致動器或觸敏鍵,來說明性地提供信息。在任何情況中,應用16說明性地生成用戶界面顯示頁面,諸如圖1A中所示的顯示頁面34。頁面34包括多個不同控件,諸如控件36、38,和40。在圖1A所示的實施例中,控件36是允許用戶通過點擊位于接近想要的選項的圓圈來選擇選項之一的單選按鈕(圖1A中所示的示例中,選項是“是”和“否”)??丶?8是用戶可在其中滾動的元素列表。用戶可接著致動用戶界面元素以便選擇列表38中的項之一??丶?0是允許用戶選中或不選一框以提供輸入信息的復選框。當然,也可以使用各種各樣的其它控件,諸如下拉菜單、文本框等。類似地,除了僅僅是生成在頁面34上的每個控件36 - 40的值,頁面34具有與其相關聯(lián)的其它用戶界面狀態(tài)信息。例如,頁面可在其中具有能夠被用戶(諸如通過將光標放置在那些元素之上,或以其它方式)特別關注的特定項。因此,關注信息(頁面34中被關注的特定區(qū)域)也是可以與頁面34相關聯(lián)的用戶界面狀態(tài)信息。因此,與頁面34相關聯(lián)的用戶界面狀態(tài)信息是定義與其上的每個控件相關聯(lián)的值的全部信息,或定義顯示在頁面34上的用戶界面元素的狀態(tài)的其它信息。當應用16使用用戶界面組件20生成頁面34并且用戶32將各值輸入控件36 —40時,可能發(fā)生用戶希望啟動另一應用并且不關閉應用16而導航到新啟動的應用。例如,可能發(fā)生應用16是示出與各顧客相關聯(lián)的銷售對象的CRM應用。當用戶正在使用那個應用時,用戶可能希望瞬間啟動并導航到應用30,應用30可以是分開的應用。然而,用戶可能不希望關閉應用16,因為用戶可能想要導航回應用16。當那發(fā)生時,在用戶導航離開應用16時,應用16 (以及具體而言組件17)保存(或埋葬)頁面34 (和應用16中打開的其它頁面)的用戶界面狀態(tài)信息,使得那些頁面可以被還原(或再水合)到它們曾存在于其中的相同狀態(tài)。圖3示出了執(zhí)行這個功能的移動設備10的操作的一個實施例。圖3示出了移動設備10上的操作系統(tǒng)18首先接收指示它要啟動諸如應用16的應用的用戶輸入。這可以僅僅包括用戶致動對應于應用16的圖標以啟動該應用。接收輸入以啟動應用由圖3中框42指示。當應用16被啟動時,它創(chuàng)建使用用戶界面組件20向用戶32顯示的頁面的實例。這由圖3的框44指示。所創(chuàng)建的頁面的實例具有內(nèi)置功能(諸如埋葬/再水合組件17),以埋葬并再水合被登記用于埋葬的控件。盡管圖1中僅示出一個構造器22,在一個實施例中,應用16中的每頁具有其自己的構造器22。在調(diào)用頁面構造器22時,其啟動埋葬列表28。該埋葬列表保存在應用內(nèi)的存儲器中,并被用于標識頁面上要被埋葬或再水合的控件。例如,應用16說明性地維持用于在那些頁面的用戶界面顯示上標識頁面和控件(或其它UI頁面狀態(tài)信息)的墓碑列表,那些頁面和控件將在用戶導航離開該應用時被儲存,使得當用戶導航回該應用時可被復蘇。圖4示出了墓碑列表28的一個實施例。墓碑列表28對于應用內(nèi)的每頁是特定的,并且因此沒有明確地包括頁面標識符部分。列表28說明性地包括控件標識符部分48,其在要被儲存和復蘇的頁上標識特定控件(或其它UI頁面狀態(tài)信息)。例如,控件標識符部分48可說明性地標識圖1A所示的頁面34的個體控件36 — 40的類型和身份。
在一個實施例中,墓碑列表28僅包含要為給定頁面埋葬的控件。如果在頁面上呈現(xiàn)了像靜態(tài)標記那樣不需要被埋葬的控件,那么它可不被包括在列表中用以埋葬。如果頁面上有多于一個的需要被埋葬的相同類型的控件,那么使用控件標識符來唯一地標識它們。例如,如果單選按鈕36要被埋葬,那么在頁面34上有多于一個的單選按鈕的情況下,控件標識符48將把控件36標識為單選按鈕并且具有特定標識符。通過具有用于埋葬的列表,應用能夠指示在頁面34的這個實例上的單選按鈕36的狀態(tài)是要在用戶導航離開應用16的情況下被儲存,使得它在用戶導航回到應用16時可復蘇。使得所創(chuàng)建的頁面34用其構造器22登記列表使得要被埋葬的特定控件的身份被儲存在墓碑列表28中由圖3的框56指示。一旦頁面34被應用16顯示,并且一旦它被登記在列表28中,可發(fā)生多個將影響埋葬操作的控件的事情。例如,用戶可能簡單地從頁面34導航離開到應用16內(nèi)的另一頁。在那個情況下,操作系統(tǒng)18或應用16向頁面34傳播事件,諸如OnNavigatedFromO (導航離開)事件。在另一情形中,操作系統(tǒng)18可接收用戶輸入,至少用戶希望啟動另一應用,例如應用30,而不關閉應用16。在那個情況下,操作系統(tǒng)18向應用16發(fā)送應用停用消息(圖1所示項60)。在兩種情況下(頁面34接收用戶正導航離開它但仍在應用16內(nèi)的指示,或操作系統(tǒng)指示應用16要被停用),構造器22已經(jīng)訪問了頁面34的這個特定實例的墓碑列表28,以標識這頁的要被埋葬(儲存用于復蘇)的控件列表或其它UI狀態(tài)信息,并且從列表28選擇那些信息項(控件或UI頁面狀態(tài)信息的另一項)之一。接收用戶正導航到不同應用或不同頁面的指示,并訪問墓碑列表28由圖3的框62和64指示。當為控件調(diào)用埋葬/再水合組件17 (例如,保留控件狀態(tài)的代碼)時,它標識所選控件的狀態(tài)(或其它n頁面狀態(tài)信息),并創(chuàng)建能夠儲存控件類型的全部相關信息的數(shù)據(jù)結構,并將其儲存在實例專用頁面狀態(tài)詞典26中。應當注意,在一實施例中,每頁的實例專用頁面狀態(tài)詞典由操作系統(tǒng)18維持。與每個應用頁面相關聯(lián)的頁面狀態(tài)詞典26包括數(shù)據(jù)結構,該數(shù)據(jù)結構對應于在應用16中的已經(jīng)被打開并且已經(jīng)被導航離開的給定頁面上的被登記用于埋葬的每個控件。詞典26中的數(shù)據(jù)結構還說明性地包括控件標識符和值部分,其中控件標識符標識對應頁面上(并且登記在列表28中)的每個控件,值部分標識與那些控件的每個相關聯(lián)的值。圖4示出了頁面狀態(tài)詞典數(shù)據(jù)結構26的一個實施例??梢钥吹剑瑪?shù)據(jù)結構26包括控件標識符48,其可以與上面結合列表28描述的那些相同。其標識為每個控件保存的特定n狀態(tài)信息。數(shù)據(jù)結構26還說明性地包括控件值部分50,每一個控件值部分對應于控件標識符部分48之一。控件值部分50儲存指示由控件標識符部分48所標識的控件36 —40的每一個的狀態(tài)的值。例如,如果一個控件標識符部分48在頁面34上標識單選按鈕控件36,那么與那個控件相關聯(lián)的控件值部分50將具有值“否”,指示用戶已經(jīng)在單選按鈕36中選擇了 “否”選項。為頁面34上的每個控件儲存這個信息,在用戶導航離開并且然后返回當前應用的情況下,應用16希望復蘇這個信息。當然,數(shù)據(jù)結構26可包括對應于頁面34的應用16同樣希望還原的其它n狀態(tài)信息。此外,可能有多于一個的與每個控件相關聯(lián)的控件值。通過儲存登記在用于埋葬的列表中一個或其它控件,可捕捉全部其它n狀態(tài)信肩、O
為將信息保存到數(shù)據(jù)結構26,埋葬/再水合組件17獲得頁面34上的每個登記在列表28中的控件的值,并將其連同其對應的控件標識符儲存在數(shù)據(jù)結構26中,其進一步儲存在頁面狀態(tài)詞典中。這由圖3的框66指示。一旦全部的控件被指定在列表中用于埋葬,埋葬/再水合組件17被調(diào)用。接著確定這頁(例如頁面34)上是否沒有更多控件要被儲存,并且若是,進程回退到框64。組件17從列表28中標識對其需要保存值的其余控件,并將那些控件值保存到頁面34的當前實例的實例專用頁面狀態(tài)詞典26。這由圖3的框68指示。處理以此方式繼續(xù),直到例如該頁面34的被登記在列表28中的全部UI頁面狀態(tài)信息,已經(jīng)被儲存在該頁面的實例專用頁面狀態(tài)詞典數(shù)據(jù)結構26中。一旦這完成了,全部需要的n狀態(tài)信息已經(jīng)被儲存使得如果用戶希望導航回這個頁面它可被還原到這個頁面。圖5示出流程圖的一個實施例,該流程圖指示在導航離開那個頁面之后當用戶希望導航回到它時,應用16和埋葬/再水合組件17如何復蘇給定頁面34的n狀態(tài)信息。首先,操作系統(tǒng)18通過用戶界面組件20說明性地接收來自用戶32的輸入,指示用戶希望導航回應用16的頁面34。例如,當用戶已經(jīng)導航到應用30,并且用戶現(xiàn)在擊了返回按鈕,或關閉應用30,操作系統(tǒng)18接著向應用16發(fā)送“應用激活”消息70,指示它正被重新激活。操作系統(tǒng)18說明性地保存被用戶打開并導航離開但還沒有關閉的頁面的頁堆棧24。這樣,基于用戶輸入,操作系統(tǒng)18知曉導航去哪頁,并從頁堆棧24取回那個頁面。接收用戶輸入并導航到想要的頁面由圖5的框72和74指示。當用戶導航回頁面34時,該頁面接收可表示此的事件。例如,頁面可接收“OnNavigatedTo () ”(導航去往)事件,指示用戶32已經(jīng)導航到頁面34。在這一點上,頁面34不知曉用戶是否僅僅從應用16內(nèi)導航回到該頁面,或用戶是否已經(jīng)同時離開應用16,并且該頁面已被埋葬(儲存用于復蘇)。頁的構造器22和繼承的埋葬/再水合組件17被用來確定它是否已經(jīng)被埋葬。如果用戶已經(jīng)離開應用16 (而且頁面34因此未被埋葬),那么用戶界面狀態(tài)信息已經(jīng)被自動維持且無需做什么。如框78所指示,應用16僅僅顯示想要的頁面。如果用戶已經(jīng)從應用16導航離開,那么頁面34已經(jīng)被埋葬,并且在將n頁面狀態(tài)信息展示給用戶之前,UI頁面狀態(tài)信息需要被還原到用戶界面頁面。作出這個決定由圖5的框76指示。如果,在框76,確定了頁面34被埋葬,然后訪問用于埋葬的列表,并且接著從實例專用頁面狀態(tài)詞典26拉取出對應于頁面34的這個示例的控件的數(shù)據(jù)結構,并且接著它們被再水合?;叵肫鹗褂帽宦裨岬目丶臉俗R符來標識數(shù)據(jù)結構,并且其包含用戶界面值以及對應于那個控件的狀態(tài)信息。因此,埋葬/再水合組件17訪問頁面34的這個實例的頁面狀態(tài)詞典并選擇控件之一來復蘇。這由圖5的框80指示。組件17接著提取所選控件的用戶界面狀態(tài)信息,并將那個值還原到頁面34上的控件,用以顯示給用戶。這由框82指示。組件17接著確定,頁面34是否還有控件需要被還原(或其它n頁面狀態(tài)信息)。這通過簡單地遍歷登記用于埋葬的控件的列表完成。這由框84指示。如果是,進程在框80繼續(xù),在那里選擇下一個控件,并且在框82,在那里對應于那個控件的用戶界面狀態(tài)信息被還原到頁面34的顯示。然而,如果,組件17已經(jīng)從頁面狀態(tài)詞典26還原當前頁面的全部的值,那么該頁面僅被顯示如框78所指示的那樣。應當注意,在使用中,用戶可能已經(jīng)導航到深入應用16內(nèi)多個頁面的層級。每次用戶導航離開那些頁面之一到深入應用16內(nèi)的下一個層級的頁面,回想起頁面接收"OnNavigatedFromO ”事件并將UI頁面狀態(tài)信息的值儲存在頁面狀態(tài)詞典26中,如圖3框62 - 68所示。因此,即使用戶接著導航離開應用16并返回應用16,并且接著回頭向上導航多個層級至應用16內(nèi)的不同頁面,對應于那個頁面堆棧的全部的UI頁面狀態(tài)信息被儲存在每個頁面26的不同頁面狀態(tài)詞典中,其中數(shù)據(jù)結構之一對應于頁面上登記用來埋葬的那些控件的每一個。作為示例,如果用戶深入應用16三級(在頁面34上)并導航到應用30并接著返回應用16,用戶將看見其顯示了和用戶離開時相同的UI狀態(tài)信息的頁面34。接著,如果用戶向上導航一個層級(仍然在應用16內(nèi)),則該層級的頁面將被以與上面結合圖5所描述的相同的方式還原,使得用戶將看見具有全部的與用戶最初導航離開那個頁面時相同的n狀態(tài)信息的那個頁面。無論用戶已經(jīng)導航到深入應用16中多少層級,這可以繼續(xù)。
圖6是示出可以被采用以儲存和復蘇頁面的實體的類圖90的一個說明性實施例。在圖6所示的實施例中,類圖90包括基類PhoneApplicationPage (電話應用頁面)92。類圖90還示出從PhoneApplicationPage92中導出的與給定應用相關的PhoneApplicationPage92的專用子類。在圖6所示的實施例中,因為應用16說明性地是 CRM 應用,從 PhoneApplicationPage92 中導出 CrmPhoneApplicationPage(顧客關系管理電話應用頁面)94,并因此包括PhoneApplicationPage92的全部功能。CrmPhoneApplicationPage94具有,與其相關聯(lián)的,埋葬實用程序?qū)嶓w96。CrmPhoneApplicationPage還包括一些埋葬事件處理邏輯。該邏輯主要走查登記用于埋葬的控件的列表,并從埋葬實用程序96調(diào)用應用程序編程接口以埋葬或再水合控件。上面討論的用于儲存和復蘇頁面的功能可通過訪問埋葬實用程序?qū)嶓w96來執(zhí)行。然而,從CrmPhoneAppli cat ionPage創(chuàng)建的頁面不需要知曉關于這些實用程序。一旦控件被登記用于在構造器中埋葬,CrmPhoneAppli cat ionPage中的邏輯顧及埋葬和再水合的處理。圖6還示出了多個指定頁面類98、100和102,其示出應用16的全部指定頁面從CrmPhoneApplicationPage94 導出。在一個不例性實施例中,CrmPhoneApplicationPage94包括用于儲存和重建頁面98 - 102的全部邏輯(通過其與埋葬實用程序96相關聯(lián)),并且因此全部的頁面98 - 102也包括這個邏輯。因此,儲存和重建頁面98 - 102所需的邏輯,當用戶導航離開和返回應用16時,已經(jīng)在頁面98 — 102內(nèi)。埋葬實用程序96說明性地保留并還原每個控件的狀態(tài)。S卩,CrmPhoneApplicationPage94訪問這些實用程序,以便走查控件的列表28 (頁面98 - 102已經(jīng)向該列表28登記,并將值儲存在與每個頁面相關聯(lián)的頁面狀態(tài)詞典26中),并接著在用戶導航回應用16且到指定頁面時還原每個用戶界面狀態(tài)的值。這比在每個單獨的頁面上編碼邏輯有利。這可以極大地減少檢測花費和時間。例如,開發(fā)者或設計者僅需要檢查超類CrmPhoneApp Ii cat ionPage或埋葬實用程序?qū)嶓w96中的功能,并且不需要在每頁98 - 102上測試它。如果該功能在超類或?qū)嵱贸绦蝾惿峡捎茫鼘⒃趶闹袑С龅娜宽撋峡捎?。圖7是手持或移動計算設備10的說明性實施例的簡化了的框圖,其中可部署當前系統(tǒng)。圖8和9是手持設備的不例。
圖7提供了運行或訪問CRM應用16的設備10的組件的通用框圖。在設備10中,提供了通信鏈路13,該通信鏈路允許手持設備與其它計算設備通信并且在一些實施例中提供用于諸如通過掃描來自動接收信息的信道。通信鏈路13的示例包括紅外端口、串行/USB端口、諸如以太網(wǎng)端口之類的電纜網(wǎng)絡端口、以及允許通過一個或多個通信協(xié)議的通信的無線網(wǎng)絡端口,所述通信協(xié)議包括通用分組無線服務(GPRS)、lXrtt、短消息服務(這些協(xié)議是用于提供對網(wǎng)絡的蜂窩訪問的無線服務)以及802. 11和802.1lb (WiFi)協(xié)議、和藍牙協(xié)議(這些協(xié)議提供對網(wǎng)絡的無線連接)。根據(jù)其他實施例,應用16 (或任何其它應用)在連接到SD卡接口 15的可移動安全數(shù)字(SD)卡上接收。SD卡接口 15和通信鏈路13沿總線19與處理器11進行通信,該總線19還連接到存儲器21和輸入/輸出(I/O)組件23、以及時鐘25和位置系統(tǒng)27。在一個實施例中,提供了 I/O組件23以便于輸入和輸出操作。針對設備10的各個實施例的I/O組件23可以包括輸入組件,諸如按鈕、觸摸傳感器、觸摸屏幕、鄰近度傳感器、話筒、傾斜傳感器以及重力開關;以及輸出組件,諸如顯示設備26、揚聲器和或打印機端口。也可以使用其他I/O組件23。時鐘25說明性地包括輸出時間和日期的真實時間時鐘組件。時鐘還可以說明性地為處理器11提供定時功能。位置系統(tǒng)27說明性地包括輸出設備18的當前地理位置的組件。這例如可以包括全球定位系統(tǒng)(GPS)接收機、LORAN系統(tǒng)、航位推算系統(tǒng)、蜂窩三角測量系統(tǒng)、或者其他定位系統(tǒng)。這例如還可以包括生成所期望的地圖、導航線路和其他地理功能的測繪軟件或?qū)Ш杰浖?。存儲?1儲存操作系統(tǒng)29、網(wǎng)絡設置31、應用33 (其可包括應用16和30)、應用配置設置35、注冊表37、通信驅(qū)動程序39、通信配置設置41、列表28和詞典16。存儲器21可以包括所有類型的有形易失性和非易失性計算機可讀存儲器設備。存儲器21存儲計算機可讀指令,所述指令在被處理器11執(zhí)行時致使處理器根據(jù)所述指令執(zhí)行計算機實現(xiàn)的步驟或功能。客戶CRM系統(tǒng)24例如可駐留在存儲器21中。網(wǎng)絡設定31的示例包括諸如代理信息、因特網(wǎng)連接信息以及測繪之類的東西。應用配置設定35包括為特定企業(yè)或用戶定制應用的設定。通信配置設定41提供了用于與其他計算機進行通信的參數(shù),并且包括諸如GPRS參數(shù)、SMS參數(shù)、連接用戶名和口令之類的項目。應用33可以是之前已被儲存在設備10上的應用或在使用期間安裝的應用。在一個實施例中,應用33包括聯(lián)系人或電話本應用43、應用16和應用30,盡管這些的部分可以是操作系統(tǒng)29的一部分或也可以被托管于設備10的外部。圖8和9提供了可以被用作設備10的手持設備的示例,但是也可以使用其他設備。在圖8,提供智能電話或移動電話45作為設備10。電話45包括用于撥打電話號碼的一組小鍵盤47 ;能夠顯示包括應用圖像、圖標、網(wǎng)頁(例如頁面34)、照片和視頻在內(nèi)的圖像的顯示器49;以及用于選擇顯示器所示項目的控件按鈕71。電話包括天線53以用于接收諸如通用分組無線服務(GPRS)和IXrtt以及短消息服務(SMS)信號之類的蜂窩電話信號。在一些實施例中,電話45還包括容納安全數(shù)字(SD)卡57的SD卡槽55。圖9的設備是個人數(shù)字助理(PAD) 59,它也可以是平板或板式計算設備或媒體播放器(此處統(tǒng)稱PDA59)。PDA 59包括電感屏61,所述電感屏感測指示筆63(或其他指示器、諸如用戶的手指)在該指示筆被置于該屏幕之上時的位置。這允許用戶在屏幕上選中、突出顯示和移動項目以及繪圖和書寫。PDA59還包括多個用戶輸入鍵或按鈕(比如按鈕65),其允許用戶滾動通過顯示器61上所顯示的菜單選項或其他顯示選項,并且允許用戶在沒有接觸顯示器61的情況下改變應用或選擇用戶輸入功能。盡管未被示出,但是PDA 59可以包括允許與其他計算機進行無線通信的內(nèi)置天線和紅外發(fā)射機/接收機、以及允許對其他計算設備的硬件連接的連接端口。這樣的硬件連接通常是通過經(jīng)由串行或USB端口連接到其他計算機的支架來進行的。因此,這些連接是非網(wǎng)絡連接。在一個實施例中,PDA59還包括容納SD卡69的SD卡槽67。注意,設備10的其他形式是可能的。示例包括平板或板式計算機、音樂或視頻播放器,以及其他手持或移動計算設備。也將注意到,如圖1所示,應用16以及相關聯(lián)的存儲器和功能可駐留在除客戶機設備10以外的其它地方。盡管圖1的實施例示出應用16駐留在客戶機設備10上,該系統(tǒng)也可被實現(xiàn)在其它地方,諸如實現(xiàn)在云計算環(huán)境中。云計算提供了不要求最終用戶知曉交付服務的系統(tǒng)的物理位置或配置的計算、軟件、數(shù)據(jù)訪問和存儲服務。在各個實施例中,云計算通過諸如因特網(wǎng)之類的廣域網(wǎng)使用合適的協(xié)議交付服務。例如,云計算提供者通過廣域網(wǎng)交付應用,并且它們可以通過web瀏覽器或任何其他計算組件被訪問。業(yè)務軟件(諸如應用16的某些組件)以及相應的數(shù)據(jù),可被儲存在遠程位置處的服務器上。云計算環(huán)境中的計算資源可以在遠程數(shù)據(jù)中心位置處被整合或者它們可以被分散。云計算基礎結構可以通過共享數(shù)據(jù)中心交付服務,即使它們在用戶看來是單個訪問點。因此,在此所述的功能可以使用云計算架構從遠程位置處的服務提供者提供。或者,它們可以從常規(guī)的服務器提供,或者它們可以直接地安裝在客戶機設備18上。圖10是其中使用本發(fā)明的計算環(huán)境的一個實施例。例如,系統(tǒng)10或系統(tǒng)14的組件可在這個或另一個環(huán)境中實現(xiàn)。參考圖10,用于實現(xiàn)一些實施例的示例性系統(tǒng)包括計算機610形式的通用計算設備。計算機610的組件可包括,但不限于,處理單元620、系統(tǒng)存儲器630、以及將包括系統(tǒng)存儲器的各種系統(tǒng)組件耦合到處理單元621的系統(tǒng)總線620。系統(tǒng)總線621可以是若干類型的總線結構中的任一種,包括使用各種總線體系結構中的任一種的存儲器總線或存儲器控制器、外圍總線、以及局部總線。作為示例而非限制,這樣的體系結構包括工業(yè)標準體系結構(ISA)總線、微通道體系結構(MCA)總線、增強型ISA (EISA)總線、視頻電子標準協(xié)會(VESA)局部總線,以及也稱為夾層(Mezzanine)總線的外圍部件互連(PCI)總線。計算機610通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是能被計算機610訪問的任何可用介質(zhì),而且包含易失性和非易失性介質(zhì)、可移動和不可移動介質(zhì)。作為示例而非限制,計算機可讀介質(zhì)可包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結構、程序模塊或其他數(shù)據(jù)的信息的任何方法和技術實現(xiàn)的易失性和非易失性、硬件、可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括,但不限于,RAM、ROM、EEPR0M、閃存或其它存儲器技術、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設備、或能用于儲存所需信息且可以由計算機610訪問的任何其它介質(zhì)。通信介質(zhì)通常以諸如載波或其他傳輸機制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結構、程序模塊或其他數(shù)據(jù),并包括任意信息傳送介質(zhì)。術語已調(diào)制數(shù)據(jù)信號摂是指具有以在信號中編碼信息的方式被設定或改變其一個或多個特征的信號。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡或直接線連接之類的有線介質(zhì),以及諸如聲學、RF、紅外及其他無線介質(zhì)之類的無線介質(zhì)。以上的任何組合也應包括在計算機可讀介質(zhì)的范圍內(nèi)。系統(tǒng)存儲器630可被用于圖1所示的各數(shù)據(jù)存儲,或它們可被實現(xiàn)在其它地方。系統(tǒng)存儲器630包括形式為易失性和/或非易失性存儲器的計算機存儲介質(zhì),譬如只讀存儲器(ROM)631和隨機存取存儲器(RAM)632。包含諸如在啟動期間幫助在計算機610內(nèi)的元件之間傳輸信息的基本例程的基本輸入/輸出系統(tǒng)633 (BIOS)通常儲存在ROM 631中。RAM 632通常包含處理單元620可立即訪問和/或當前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非限制,圖10示出了操作系統(tǒng)634、應用程序635、其他程序模塊636和程序數(shù)據(jù) 637。計算機610還可以包括其它可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)。僅作為示例,圖10示出了從不可移動、非易失性磁介質(zhì)中讀取或向其寫入的硬盤驅(qū)動器641,從可移動、非易失性磁盤652中讀取或向其寫入的磁盤驅(qū)動器651,以及從諸如⑶ROM或其他光學介質(zhì)等可移動、非易失性光盤656中讀取或向其寫入的光盤驅(qū)動器655??稍谑纠圆僮鳝h(huán)境中使用的其他可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動器641通常通過諸如接口 640之類的不可移動存儲器接口連接到系統(tǒng)總線621,并且磁盤驅(qū)動器651和光盤驅(qū)動器655通常通過諸如接口 650之類的可移動存儲器接口連接到系統(tǒng)總線 621。以上討論并在圖10中示出的驅(qū)動器及其相關聯(lián)的計算機存儲介質(zhì)為計算機610提供了對計算機可讀指令、數(shù)據(jù)結構、程序模塊和其他數(shù)據(jù)的儲存。在圖10中,例如,硬盤驅(qū)動器641被示為儲存操作系統(tǒng)644、應用程序645、其他程序模塊646和程序數(shù)據(jù)647。注意,這些組件可與操作系統(tǒng)634、應用程序635、其他程序模塊636和程序數(shù)據(jù)637相同,也可與它們不同。在此操作系統(tǒng)644、應用程序645、其他程序模塊646以及程序數(shù)據(jù)647被給予了不同的編號,以說明至少它們是不同的副本。用戶可以通過諸如鍵盤662、話筒663以及諸如鼠標、跟蹤球或觸摸墊等定點設備661等輸入設備來將命令和信息輸入至計算機610中。其它輸入設備(未示出)可以包括操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等。這些以及其他輸入設備通常通過耦合到系統(tǒng)總線的用戶輸入接口 660連接到處理單元620,但也可通過諸如并行端口、游戲端口或通用串行總線(USB)之類的其他接口和總線結構來連接。監(jiān)視器691或其他類型的顯示設備也通過諸如視頻接口 690之類的接口連接至系統(tǒng)總線621。除了監(jiān)視器以外,計算機還可包括諸如揚聲器697和打印機696之類的其他外圍輸出設備,它們可通過輸出外圍接口 695來連接。計算機610使用到諸如遠程計算機680等一個或多個遠程計算機的邏輯連接在網(wǎng)絡化環(huán)境中操作。遠程計算機680可以是個人計算機、手持設備、服務器、路由器、網(wǎng)絡PC、對等設備或其它常見的網(wǎng)絡節(jié)點,且一般包括以上關于計算機610描述的多個或所有的元件。圖10中所描繪的邏輯連接包括局域網(wǎng)(LAN)671和廣域網(wǎng)(WAN)673,但還可包括其他網(wǎng)絡。此類聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計算機網(wǎng)絡、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。當在LAN聯(lián)網(wǎng)環(huán)境中使用時,計算機610通過網(wǎng)絡接口或適配器671連接到LAN670。當在WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機610通常包括調(diào)制解調(diào)器672或用于通過諸如因特網(wǎng)等WAN 673建立通信的其他手段。調(diào)制解調(diào)器672可以是內(nèi)置的或外置的,可經(jīng)由用戶輸入接口 660或其他適當?shù)臋C制連接到系統(tǒng)總線621。在聯(lián)網(wǎng)環(huán)境中,相對于計算機610所示的程序模塊或其部分可被儲存在遠程存儲器存儲設備中。作為示例,而非限制,圖10示出了遠程應用程序685駐留在遠程計算機680上。應當理解,所示的網(wǎng)絡連接是示例性的,并且可使用在計算機之間建立通信鏈路的其他手段。盡管用結構特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權利要求書中定義的主題不必限于上述具體特征或動作。更確切而言,上述具體特征和動作是作為實現(xiàn)權利要求的示例形式公開的。
權利要求
1.一種用于在移動設備上顯示信息的計算機實現(xiàn)方法,包括 在所述移動設備的顯示屏上顯示第一應用的第一用戶界面頁面的實例; 響應于來自所述第一用戶界面頁面實例的登記請求,在第一數(shù)據(jù)結構中登記要被還原的頁面狀態(tài)信息的標識; 接收導航離開所述第一應用的請求; 將登記在所述第一數(shù)據(jù)結構中的來自所述第一用戶界面頁面的實例的頁面狀態(tài)信息的值儲存在對應于所述第一用戶界面頁面的所述實例的實例專用數(shù)據(jù)結構中; 一旦導航回所述第一應用的所述第一用戶界面頁面,訪問對應于所述第一用戶界面頁面的實例的所述實例專用數(shù)據(jù)結構; 獲得儲存在所述實例專用數(shù)據(jù)結構中的頁面狀態(tài)信息的值;以及使用從所述實例專用數(shù)據(jù)結構中獲得的頁面狀態(tài)信息的值來顯示所述第一用戶界面頁面。
2.如權利要求I所述的計算機實現(xiàn)的方法,其特征在于,生成所述第一用戶界面頁面的實例包括 用對應于從中導出所述第一用戶界面頁面的頁面的類的功能,請求對要儲存其值的預定義頁面狀態(tài)信息的登記。
3.如權利要求I所述的計算機實現(xiàn)的方法,其特征在于,儲存在所述第一數(shù)據(jù)結構中的頁面狀態(tài)信息的標識包括用戶界面頁面狀態(tài)信息項的標識,每一項具有對應于所述第一用戶界面頁面的實例的相關聯(lián)的狀態(tài)和值。
4.如權利要求3所述的計算機實現(xiàn)的方法,其特征在于,儲存登記在所述第一數(shù)據(jù)結構中的頁面狀態(tài)信息的值包括 訪問所述第一數(shù)據(jù)結構并選擇標識在所述第一數(shù)據(jù)結構中的項之一; 從所述用戶界面頁面的實例獲得與所選擇的項相關聯(lián)的狀態(tài)和值;以及將與所選擇的項相關聯(lián)的狀態(tài)和值儲存在對應于所述第一用戶界面頁面的實例的實例專用數(shù)據(jù)結構中。
5.如權利要求I所述的計算機實現(xiàn)的方法,其特征在于,還包括 在訪問所述實例專用數(shù)據(jù)結構之前,確定自從上一次顯示所述第一用戶界面頁面,所述第一應用是被導航離開還是因為移動設備被鎖定而被掛起。
6.如權利要求I所述的計算機實現(xiàn)的方法,其特征在于,還包括 在接收導航離開所述第一應用的請求之前,從所述第一用戶界面頁面內(nèi)接收導航到所述第一應用的第二用戶界面頁面的請求;以及 響應于導航到所述第二用戶界面頁面的請求,為所述第一用戶界面頁面執(zhí)行儲存登記在所述第一數(shù)據(jù)結構中的頁面狀態(tài)信息的值的步驟。
7.—種移動設備,包括 具有第一和第二用戶界面顯示頁面的第一應用,所述第一和第二用戶界面顯示頁面兩者從頁面類導出,所述頁面類具有用于儲存和復蘇所述第一和第二用戶界面頁面的用戶界面頁面狀態(tài)信息的儲存和復蘇功能,所述第一和第二用戶界面頁面兩者繼承所述頁面面類的儲存和復蘇功能; 控制導航到和離開所述第一應用的操作系統(tǒng),所述儲存和復蘇功能接收導航離開所述第一應用的指示,并且如果所述第一和第二用戶界面顯示頁面在所述第一應用中打開,則儲存來自所述第一和第二用戶界面顯示頁面的用戶界面頁面狀態(tài)信息,并且一旦接收到導航回所述第一應用的指示,將所儲存的用戶界面頁面狀態(tài)信息還原到所述第一和第二用戶界面顯示頁面之一;以及 處理器,作為移動設備的功能部件,被所述第一應用和所述操作系統(tǒng)激活,以方便所述儲存和復蘇功能和導航。
8.如權利要求7所述的移動設備,其特征在于,所述頁面類與具有所述儲存和復蘇功能的實用程序?qū)嶓w相關聯(lián)。
9.如權利要求7所述的移動設備,其特征在于,還包括 儲存實例專用狀態(tài)詞典的頁面狀態(tài)詞典數(shù)據(jù)存儲,當所述第一和第二用戶界面顯示頁面的每一個給定實例被導航離開時,所述儲存和復蘇功能使得所述給定實例通過訪問列表并儲存對應于所述給定實例的每一種類型的頁面狀態(tài)信息的當前頁面狀態(tài)值來執(zhí)行儲存功能。
10.一種硬件計算機可讀存儲介質(zhì),儲存計算機可讀指令,所述計算機可讀指令在被計算機執(zhí)行時,使得所述計算機執(zhí)行以下步驟 在所述移動設備的顯示屏上顯示第一應用的第一用戶界面頁面的實例; 從所述第一用戶界面頁面接收儲存頁面狀態(tài)信息類型的登記請求,所述頁面狀態(tài)信息類型將在所述計算機導航離開所述第一應用時被儲存; 響應于所述登記請求,在第一數(shù)據(jù)結構中登記所述頁面狀態(tài)信息類型的標識; 接收導航離開所述第一應用的請求; 將注冊在所述第一數(shù)據(jù)結構中的來自所述第一用戶界面頁面的實例的頁面狀態(tài)信息類型的值儲存在對應于所述第一用戶界面頁面的實例的實例專用數(shù)據(jù)結構中; 一旦導航回所述第一應用的所述第一用戶界面頁面,訪問對應于所述第一用戶界面頁面的實例的所述實例專用數(shù)據(jù)結構; 獲得儲存在所述實例專用數(shù)據(jù)結構中的頁面狀態(tài)值; 將所述頁面狀態(tài)值還原到所述第一用戶界面頁面;以及 使用從所述實例專用數(shù)據(jù)結構中獲得的已還原的頁面狀態(tài)值來顯示所述第一用戶界面頁面。
全文摘要
本發(fā)明涉及移動應用上的頁面的自動生存期管理。儲存用戶界面(UI)狀態(tài)信息并在用戶導航并回到應用時使該信息復蘇。在創(chuàng)建頁面的實例時,頁面向墓碑列表登記并指示頁面上的哪個頁面狀態(tài)信息要在用戶導航離開應用時被儲存并復蘇。在用戶導航離開該應用時,應用訪問墓碑列表并儲存UI頁面狀態(tài)信息。在用戶導航返回該應用時,應用訪問頁面狀態(tài)詞典并還原UI頁面狀態(tài)信息的值。
文檔編號G06F9/44GK102981820SQ20121037683
公開日2013年3月20日 申請日期2012年9月28日 優(yōu)先權日2011年9月29日
發(fā)明者S·辛格, N·Y·沙哈 申請人:微軟公司