亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種控制方法及電子設(shè)備與流程

文檔序號(hào):11707428閱讀:229來源:國知局
一種控制方法及電子設(shè)備與流程

本發(fā)明屬于電子設(shè)備的應(yīng)用管理技術(shù)領(lǐng)域,尤其涉及一種控制方法及電子設(shè)備。



背景技術(shù):

當(dāng)下的社交應(yīng)用(app,application),一般都具有聊天及文章(閱讀、分享)等功能。

然而,現(xiàn)有的多數(shù)社交應(yīng)用,無法同時(shí)打開文章及聊天界面,進(jìn)而無法使得用戶在閱讀文章的同時(shí)進(jìn)行聊天,影響了應(yīng)用的友好程度。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明的目的在于提供一種控制方法及電子設(shè)備,旨在解決現(xiàn)有技術(shù)存在的以上問題,提升應(yīng)用的友好程度。

為此,本發(fā)明公開如下技術(shù)方案:

一種控制方法,包括:

獲得應(yīng)用程序的activity組件,其中,所述應(yīng)用程序包括多個(gè)activity組件,所述應(yīng)用程序?yàn)殡娮釉O(shè)備上安裝的任意一個(gè)應(yīng)用程序;

基于所述應(yīng)用程序的activity組件為所述應(yīng)用程序建立至少兩個(gè)棧;

基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件。

上述方法,優(yōu)選的,所述獲得應(yīng)用程序的activity組件,包括:

基于activitymanagerservice獲得用戶針對(duì)所述應(yīng)用程序的操作所觸發(fā)產(chǎn)生的activity組件。

上述方法,優(yōu)選的,所述基于所述應(yīng)用程序的activity組件為所述應(yīng)用程序建立至少兩個(gè)棧,包括:

確定activity組件的相關(guān)參數(shù)是否滿足預(yù)定條件;

基于表征所述activity組件的相關(guān)參數(shù)滿足預(yù)定條件的第一確定結(jié)果,建立與所述activity組件所對(duì)應(yīng)的第一棧;

基于表征所述activity組件的相關(guān)參數(shù)不滿足預(yù)定條件的第二確定結(jié)果,建立與所述應(yīng)用程序所對(duì)應(yīng)的主棧。

上述方法,優(yōu)選的,所述基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件,包括:

獲得新的activity組件;

基于新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定將所述新的activity組件加入所述主棧還是第一棧;

或者,

獲得新的activity組件;

基于新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定針對(duì)所述新的activity組件建立與所述新的activity組件所對(duì)應(yīng)的所述第一棧或者建立與所述應(yīng)用程序所對(duì)應(yīng)的所述主棧;

或者,

獲得新的activity組件;

基于新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定將所述新的activity組件加入所述第一棧且位于所述第一棧的棧頂。

上述方法,優(yōu)選的,所述基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件,包括:

當(dāng)所述第一棧中不具有任何activity組件時(shí),關(guān)閉所述第一棧;

或者,

響應(yīng)操作所述應(yīng)用程序的圖標(biāo)所產(chǎn)生的啟動(dòng)指令,以所述主棧以及所述第一棧中最近動(dòng)作的棧進(jìn)行響應(yīng);

或者,

響應(yīng)操作所述應(yīng)用程序的當(dāng)前頁面下顯示跳轉(zhuǎn)控件所產(chǎn)生的跳轉(zhuǎn)指令,以所在所述主棧以及所述第一棧中的非當(dāng)前棧進(jìn)行響應(yīng)。

一種電子設(shè)備,包括:

處理器,所述處理器用于執(zhí)行:

獲得應(yīng)用程序的activity組件,其中,所述應(yīng)用程序包括多個(gè)activity組件,所述應(yīng)用程序?yàn)殡娮釉O(shè)備上安裝的任意一個(gè)應(yīng)用程序;

基于所述應(yīng)用程序的activity組件為所述應(yīng)用程序建立至少兩個(gè)棧;

基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件。

上述電子設(shè)備,優(yōu)選的,所述處理器,獲得應(yīng)用程序的activity組件,進(jìn)一步包括:

基于activitymanagerservice獲得用戶針對(duì)所述應(yīng)用程序的操作所觸發(fā)產(chǎn)生的activity組件。

上述電子設(shè)備,優(yōu)選的,所述處理器,基于所述應(yīng)用程序的activity組件為所述應(yīng)用程序建立至少兩個(gè)棧,進(jìn)一步包括:

確定activity組件的相關(guān)參數(shù)是否滿足預(yù)定條件;基于表征所述activity組件的相關(guān)參數(shù)滿足預(yù)定條件的第一確定結(jié)果,建立與所述activity組件所對(duì)應(yīng)的第一棧;基于表征所述activity組件的相關(guān)參數(shù)不滿足預(yù)定條件的第二確定結(jié)果,建立與所述應(yīng)用程序所對(duì)應(yīng)的主棧。

上述電子設(shè)備,優(yōu)選的,所述處理器,基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件,進(jìn)一步包括:

獲得新的activity組件;

基于新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定將所述新的activity組件加入所述主棧還是第一棧;

或者,

獲得新的activity組件;

基于新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定針對(duì)所述新的activity組件建立與所述新的activity組件所對(duì)應(yīng)的所述第一?;蛘呓⑴c所述應(yīng)用程序所對(duì)應(yīng)的所述主棧;

或者,

獲得新的activity組件;

基于新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定將所述新的activity組件加入所述第一棧且位于所述第一棧的棧頂。

上述電子設(shè)備,優(yōu)選的,所述處理器,基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件,進(jìn)一步包括:

當(dāng)所述第一棧中不具有任何activity組件時(shí),關(guān)閉所述第一棧;

或者,

響應(yīng)操作所述應(yīng)用程序的圖標(biāo)所產(chǎn)生的啟動(dòng)指令,以所述主棧以及所述第一棧中最近動(dòng)作的棧進(jìn)行響應(yīng);

或者,

響應(yīng)操作所述應(yīng)用程序的當(dāng)前頁面下顯示跳轉(zhuǎn)控件所產(chǎn)生的跳轉(zhuǎn)指令,以所在所述主棧以及所述第一棧中的非當(dāng)前棧進(jìn)行響應(yīng)。

由以上方案可知,本申請(qǐng)?zhí)峁┑目刂品椒半娮釉O(shè)備,獲得應(yīng)用程序的activity組件,其中,所述應(yīng)用程序包括多個(gè)activity組件,所述應(yīng)用程序?yàn)殡娮釉O(shè)備上安裝的任意一個(gè)應(yīng)用程序;基于所述應(yīng)用程序的activity組件為所述應(yīng)用程序建立至少兩個(gè)棧;在此基礎(chǔ)上,基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件。由于本申請(qǐng)基于至少兩個(gè)棧來管理應(yīng)用程序的每個(gè)activity組件,不同棧中activity的使用相互獨(dú)立,互不影響,從而可實(shí)現(xiàn)至少兩個(gè)activity組件的同時(shí)使用,因此,本申請(qǐng)方案能夠解決現(xiàn)有技術(shù)的社交應(yīng)用中不能同時(shí)使用文章及聊天功能的問題,進(jìn)一步提升了應(yīng)用的友好程度。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。

圖1是本申請(qǐng)?zhí)峁┑囊环N控制方法實(shí)施例一的流程圖;

圖2是本申請(qǐng)?zhí)峁┑囊环N控制方法實(shí)施例二的流程圖;

圖3是本申請(qǐng)?zhí)峁┑囊环N控制方法實(shí)施例三的流程圖;

圖4是本申請(qǐng)?zhí)峁┑囊环N控制方法實(shí)施例四的流程圖;

圖5是本申請(qǐng)實(shí)施例四提供的以分屏方式同時(shí)顯示不同activity組件的界面的示意圖;

圖6是本申請(qǐng)實(shí)施例四提供的在當(dāng)前activity組件的界面中設(shè)置顯示跳轉(zhuǎn)控件的示意圖;

圖7是本申請(qǐng)?zhí)峁┑囊环N電子設(shè)備實(shí)施例五的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為了引用和清楚起見,下文中使用的技術(shù)名詞、簡寫或縮寫總結(jié)解釋如下:

activity:是android組件中最基本也是最為常見的四大組件(activity,service服務(wù),contentprovider內(nèi)容提供者,broadcastreceiver廣播接收器)之一,是一個(gè)應(yīng)用程序組件,提供一個(gè)屏幕界面,用戶可以用來交互以完成某項(xiàng)任務(wù)。activity中所有操作都與用戶密切相關(guān),是一個(gè)負(fù)責(zé)與用戶交互的組件。

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

實(shí)施例一

本申請(qǐng)實(shí)施例一提供一種控制方法,該方法可以應(yīng)用于但不局限于諸如智能手機(jī)、平板電腦等電子設(shè)備,參考圖1示出的一種控制方法實(shí)施例一的流程圖,所述方法可以包括以下步驟:

步驟101、獲得應(yīng)用程序的activity組件,其中,所述應(yīng)用程序包括多個(gè)activity組件,所述應(yīng)用程序?yàn)殡娮釉O(shè)備上安裝的任意一個(gè)應(yīng)用程序。

所述應(yīng)用程序,具體地,例如可以是電子設(shè)備上安裝的微信、qq等任意一個(gè)應(yīng)用程序,所述應(yīng)用程序包括多個(gè)activity組件,應(yīng)用程序的activity組件在啟動(dòng)后,在電子設(shè)備屏幕上對(duì)應(yīng)提供一個(gè)屏幕界面,用于與用戶間的交互以完成某項(xiàng)任務(wù)。用戶可通過在應(yīng)用程序中執(zhí)行相應(yīng)操作,來關(guān)閉一個(gè)activity組件、或者啟動(dòng)一個(gè)activity組件,或者進(jìn)行activity組件之間的切換,以使得通過切換將所需的activity組件的界面前置等。

本步驟中,具體可基于activitymanagerservice(ams,組件管理服務(wù))來獲得用戶針對(duì)所述應(yīng)用程序的操作所觸發(fā)產(chǎn)生的activity組件。

步驟102、基于所述應(yīng)用程序的activity組件為所述應(yīng)用程序建立至少兩個(gè)棧。

區(qū)別于現(xiàn)有技術(shù)中僅為應(yīng)用程序建立一個(gè)棧,并基于所述一個(gè)棧對(duì)應(yīng)用程序的activity組件進(jìn)行管理的方式,本申請(qǐng)中,基于應(yīng)用程序的activity組件為所述應(yīng)用程序建立至少兩個(gè)棧,并基于所建立的至少兩個(gè)棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理,以此解決現(xiàn)有技術(shù)不能同時(shí)應(yīng)用多于一個(gè)的activity組件的問題,如不能同時(shí)打開文章及聊天窗口進(jìn)行應(yīng)用的問題等。

其中,可根據(jù)預(yù)定規(guī)則為應(yīng)用程序建立至少兩個(gè)棧,例如,假設(shè)應(yīng)用程序共包含n個(gè)activity組件,則可依據(jù)預(yù)定規(guī)則為應(yīng)用程序建立主、從兩個(gè)棧,每個(gè)棧中對(duì)應(yīng)包含符合該棧入棧規(guī)則的相應(yīng)個(gè)數(shù)的activity組件,從而后續(xù)可基于所述主、從兩個(gè)棧對(duì)各自棧中的activity組件進(jìn)行管理;當(dāng)然,也可依據(jù)預(yù)定規(guī)則為應(yīng)用程序建立多于兩個(gè)的棧,使得后續(xù)基于所建立的多于兩個(gè)的棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理,本實(shí)施例對(duì)此不作限定。

步驟103、基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件。

在為應(yīng)用程序建立有至少兩個(gè)棧的基礎(chǔ)上,可基于所述至少兩個(gè)棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理。例如,可以根據(jù)屏幕上當(dāng)前前置顯示的activity組件所對(duì)應(yīng)的棧,對(duì)該activity組件進(jìn)行回退管理,確定當(dāng)對(duì)該activity組件執(zhí)行回退操作時(shí),具體應(yīng)回退至應(yīng)用程序的哪個(gè)activity組件;或者,還可以根據(jù)所建立的至少兩個(gè)棧中的不同棧,同時(shí)打開并顯示分別處于該不同棧中的不同activity組件,以使得用戶能夠?qū)Σ煌腶ctivity組件進(jìn)行同時(shí)應(yīng)用等。

由以上方案可知,本申請(qǐng)?zhí)峁┑目刂品椒?,獲得應(yīng)用程序的activity組件,其中,所述應(yīng)用程序包括多個(gè)activity組件,所述應(yīng)用程序?yàn)殡娮釉O(shè)備上安裝的任意一個(gè)應(yīng)用程序;基于所述應(yīng)用程序的activity組件為所述應(yīng)用程序建立至少兩個(gè)棧;在此基礎(chǔ)上,基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件。由于本申請(qǐng)基于至少兩個(gè)棧來管理應(yīng)用程序的每個(gè)activity組件,不同棧中activity的使用相互獨(dú)立,互不影響,從而可實(shí)現(xiàn)至少兩個(gè)activity組件的同時(shí)使用,因此,本申請(qǐng)方案能夠解決現(xiàn)有技術(shù)的社交應(yīng)用中不能同時(shí)使用文章及聊天功能的問題,進(jìn)一步提升了應(yīng)用的友好程度。

實(shí)施例二

參考圖2示出的一種控制方法實(shí)施例二的流程圖,本實(shí)施例中,所述步驟102,基于所述應(yīng)用程序的activity組件為所述應(yīng)用程序建立至少兩個(gè)棧,可以通過以下處理過程實(shí)現(xiàn):

步驟1021、確定activity組件的相關(guān)參數(shù)是否滿足預(yù)定條件。

activity組件的相關(guān)參數(shù),可以是用于標(biāo)識(shí)所述activity組件的相關(guān)標(biāo)識(shí)信息,更具體地,該標(biāo)識(shí)信息可以是包含有組件類名及組件所屬應(yīng)用的應(yīng)用包名的信息,以使得能夠通過activity組件的標(biāo)識(shí)信息,識(shí)別出該activity組件具體為哪個(gè)應(yīng)用程序的哪個(gè)組件。

所述預(yù)定條件可以是預(yù)先制定的針對(duì)為組件建棧的指示信息,該指示信息具體用于指示需為應(yīng)用程序中的哪些activity組件,建立獨(dú)立于應(yīng)用程序的主棧的棧(可作為從棧),使得設(shè)備能夠基于應(yīng)用程序的主棧以及該獨(dú)立于主棧的棧,對(duì)兩個(gè)棧中的activity組件進(jìn)行獨(dú)立管理。

更進(jìn)一步地,所述指示信息可以包括至少一個(gè)activity組件所對(duì)應(yīng)的所述相關(guān)參數(shù)信息,如包括至少一個(gè)activity組件的標(biāo)識(shí)信息等,從而使得能夠依據(jù)該指示信息,為該指示信息所指示的至少一個(gè)activity組件,對(duì)應(yīng)建立一個(gè)獨(dú)立于應(yīng)用程序的主棧的棧。

可以理解的是,當(dāng)所述預(yù)定條件為上述指示信息時(shí),若activity組件的相關(guān)參數(shù)如activity組件的標(biāo)識(shí)信息,包含在該指示信息中,則表示該activity組件的相關(guān)參數(shù)符合所述預(yù)定條件。否則,若activity組件的相關(guān)參數(shù)不包含該指示信息中,則表示不符合所述預(yù)定條件。

步驟1022、基于表征所述activity組件的相關(guān)參數(shù)滿足預(yù)定條件的第一確定結(jié)果,建立與所述activity組件所對(duì)應(yīng)的第一棧。

如果所述activity組件的相關(guān)參數(shù)滿足所述預(yù)定條件,比如所述activity組件的標(biāo)識(shí)信息包含在所述指示信息中,則建立與該activity組件相對(duì)應(yīng)的第一棧,該第一棧即為一獨(dú)立于應(yīng)用程序的主棧的棧,也可稱之為從棧。以支持后續(xù)基于該第一棧對(duì)所述activity組件進(jìn)行管理,進(jìn)而使得該第一棧中activity組件的管理與主棧中activity組件的管理能夠互相獨(dú)立、互不影響。

步驟1023、基于表征所述activity組件的相關(guān)參數(shù)不滿足預(yù)定條件的第二確定結(jié)果,建立與所述應(yīng)用程序所對(duì)應(yīng)的主棧。

如果所述activity組件的相關(guān)參數(shù)不滿足所述預(yù)定條件,比如所述activity組件的標(biāo)識(shí)信息不包含在所述指示信息中,則建立與所述應(yīng)用程序所對(duì)應(yīng)的主棧。

其中,所述主棧是面向整個(gè)應(yīng)用程序的棧,所述第一棧即從棧,是面向應(yīng)用程序中需要進(jìn)行獨(dú)立(獨(dú)立于主棧中的activity)建棧管理的activity組件的棧,應(yīng)用程序中,依據(jù)規(guī)則所確定的需要進(jìn)行獨(dú)立建棧管理的activity組件除外的其他activity組件,在應(yīng)用過程中皆可基于應(yīng)用程序的主棧進(jìn)行管理。所述規(guī)則比如可以是上述的預(yù)定條件,或者也可以是在上述預(yù)定條件的基礎(chǔ)上結(jié)合其他因素(如activity的啟動(dòng)源等)所構(gòu)成的規(guī)則。

實(shí)施例三

參考圖3示出的一種控制方法實(shí)施例三的流程圖,本實(shí)施例中,所述步驟103,基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件,可以通過以下處理過程實(shí)現(xiàn):

步驟1031、獲得新的activity組件;基于新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定將所述新的activity組件加入所述主棧還是第一棧;或者,獲得新的activity組件;基于新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定針對(duì)所述新的activity組件建立與所述新的activity組件所對(duì)應(yīng)的所述第一?;蛘呓⑴c所述應(yīng)用程序所對(duì)應(yīng)的所述主棧;或者,獲得新的activity組件;基于新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定將所述新的activity組件加入所述第一棧且位于所述第一棧的棧頂。

其中,所述新的activity組件,可以是用戶在應(yīng)用程序當(dāng)前前置顯示的某一activity組件的界面上通過執(zhí)行相應(yīng)操作,所觸發(fā)啟動(dòng)的組件,例如,在當(dāng)前前置顯示的微信文章界面(對(duì)應(yīng)一activity組件)中,通過執(zhí)行打開某一文章的操作,實(shí)現(xiàn)啟動(dòng)該文章對(duì)應(yīng)的activity組件等;或者,也可以是用戶在應(yīng)用程序的主界面中通過執(zhí)行相應(yīng)操作,所觸發(fā)啟動(dòng)的組件,如在微信主界面中,通過執(zhí)行打開朋友圈的操作,實(shí)現(xiàn)啟動(dòng)朋友圈對(duì)應(yīng)的activity組件,或通過執(zhí)行打開主界面中所顯示的某一聯(lián)系人的聊天窗口,實(shí)現(xiàn)啟動(dòng)該聊天窗口對(duì)應(yīng)的activity組件等。

所述新的activity組件同樣地可基于activitymanagerservice來獲得。

所述新的activity組件的啟動(dòng)源,即為所述activity組件啟動(dòng)時(shí)所基于的應(yīng)用程序的部分,可以理解的是,該啟動(dòng)源可以是應(yīng)用程序的某一activity組件(提供的界面),也可以是應(yīng)用程序?qū)?yīng)的主界面。

在獲得新的activity組件后,可對(duì)所述新的activity組件進(jìn)行相應(yīng)的建?;蛉霔9芾?。

其中,可基于該新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定將該新的activity組件加入所述主棧還是第一棧。

具體地,假設(shè)當(dāng)前已為應(yīng)用程序建立有所需的至少兩個(gè)棧,比如已建立所述第一棧及所述主棧,則若所述新的activity組件的相關(guān)參數(shù)滿足所述預(yù)定條件,比如其標(biāo)識(shí)信息包含在上述指示信息中,則可直接確定將所述新的activity組件加入所述第一棧中;若所述新的activity組件的相關(guān)參數(shù)不滿足所述預(yù)定條件,但所述新的activity組件的啟動(dòng)源對(duì)應(yīng)的組件滿足所述預(yù)定條件,則可知所述新的activity組件的啟動(dòng)源處于所述第一棧,即相當(dāng)于所述新的activity組件基于所述第一棧啟動(dòng),此種情況下,同樣可將所述新的activity組件加入所述第一棧中。若所述新的activity組件的相關(guān)參數(shù)不滿足所述預(yù)定條件,且所述新的activity組件的啟動(dòng)源處于所述主棧,則將所述新的activity組件加入所述主棧。

或者,還可以基于所述新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定針對(duì)所述新的activity組件,是建立與所述新的activity組件所對(duì)應(yīng)的所述第一棧,還是建立與所述應(yīng)用程序所對(duì)應(yīng)的所述主棧。

當(dāng)依據(jù)所述新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定出需將所述新的activity組件加入第一棧時(shí),若當(dāng)前所述第一棧還未建立或已關(guān)閉,則需為所述新的activity組件建立與其對(duì)應(yīng)的第一棧;同理,當(dāng)依據(jù)所述新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定出需將所述新的activity組件加入應(yīng)用程序的主棧時(shí),若當(dāng)前還未建立所述主棧,則建立與應(yīng)用程序相對(duì)應(yīng)的主棧,以使得能夠?qū)⒃撔碌腶ctivity組件加入所述主棧。

或者,還可以基于所述新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定將該新的activity組件加入所述第一棧且位于所述第一棧的棧頂。

當(dāng)基于所述新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定出需將該新的activity組件加入所述第一棧時(shí),則具體基于棧的fifo(firstinfirstout,先進(jìn)先出)特點(diǎn),將該新的activity組件加入所述第一棧的棧頂。同理,如果確定出需將該新的activity組件加入主棧,則同樣基于棧特點(diǎn),將該新的activity組件加入主棧的棧頂。

本實(shí)施例在獲得新的activity組件時(shí),通過對(duì)該新的activity組件進(jìn)行相應(yīng)的建?;蛉霔L幚恚墒沟米罱K將應(yīng)用程序的各個(gè)已啟動(dòng)的activity組件分別加入至少兩個(gè)不同的棧,進(jìn)而可為基于至少兩個(gè)不同的棧對(duì)應(yīng)用程序的activity組件進(jìn)行管理提供支持。

實(shí)施例四

參考圖4示出的一種控制方法實(shí)施例四的流程圖,本實(shí)施例中,所述步驟103,基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件,可以通過以下處理過程實(shí)現(xiàn):

步驟1032、當(dāng)所述第一棧中不具有任何activity組件時(shí),關(guān)閉所述第一棧;或者,響應(yīng)操作所述應(yīng)用程序的圖標(biāo)所產(chǎn)生的啟動(dòng)指令,以所述主棧以及所述第一棧中最近動(dòng)作的棧進(jìn)行響應(yīng);或者,響應(yīng)操作所述應(yīng)用程序的當(dāng)前頁面下顯示跳轉(zhuǎn)控件所產(chǎn)生的跳轉(zhuǎn)指令,以所在所述主棧以及所述第一棧中的非當(dāng)前棧進(jìn)行響應(yīng)。

其中,如上文所述,當(dāng)啟動(dòng)應(yīng)用程序的某一activity組件時(shí),需根據(jù)該activity組件的啟動(dòng)源以及所述預(yù)定條件,建立與該activity組件相對(duì)應(yīng)的第一?;蚺c應(yīng)用程序相對(duì)應(yīng)的主棧,或者,將該activity組件加入所述第一棧或所述主棧,那么,相對(duì)應(yīng)地,在退出所述activity組件時(shí),如退出微信文章對(duì)應(yīng)的activity組件時(shí),會(huì)將該activity組件從其所在的棧中移出,比如從其所在的第一棧中移出等,當(dāng)棧中所有activity組件均被移出后,則會(huì)產(chǎn)生一個(gè)空棧,此種情況下,可將不具有任何activity組件的空棧關(guān)閉。從而,對(duì)于為應(yīng)用程序所建立的所述第一棧及所述主棧而言,當(dāng)所述第一棧中不具有任何activity組件時(shí),可關(guān)閉所述第一棧,當(dāng)所述主棧中不具有任何activity組件時(shí),可關(guān)閉所述主棧。

所述關(guān)閉棧具體可以是刪除棧或銷毀棧等。在關(guān)閉某一個(gè)棧,如關(guān)閉所述第一棧或主棧后,后續(xù),當(dāng)再次啟動(dòng)應(yīng)用程序的某一activity組件,并需要將該activity組件加入第一?;蛑鳁r(shí),可針對(duì)啟動(dòng)的所述activity組件,動(dòng)態(tài)建立與該activity組件相對(duì)應(yīng)的第一棧,或動(dòng)態(tài)建立與應(yīng)用程序?qū)?yīng)的主棧,進(jìn)而實(shí)現(xiàn)對(duì)該activity組件進(jìn)行相應(yīng)的入棧處理。

也就是說,本申請(qǐng)中依據(jù)至少兩個(gè)棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理的過程是動(dòng)態(tài)的,如可依據(jù)activity組件的實(shí)際啟動(dòng)或退出事件等,對(duì)activity組件進(jìn)行動(dòng)態(tài)的建立棧、加入棧、移出?;蜿P(guān)閉棧等管理操作,其中,當(dāng)退出某一activity組件,并將該activity組件從其所在的棧中移出后,系統(tǒng)基于該activity組件所在的棧進(jìn)行回退管理,具體地,將該被移出的activity組件所在棧的新的棧頂activity組件作為當(dāng)前組件,進(jìn)行界面展示。

人們?cè)趩?dòng)并使用應(yīng)用程序過程中,如啟動(dòng)并使用應(yīng)用程序的某一activity組件過程中,較為常見的一種場景是,在未退出當(dāng)前應(yīng)用程序某一activity組件的情況下,調(diào)出其他應(yīng)用程序進(jìn)行使用,從而導(dǎo)致未退出的應(yīng)用程序中當(dāng)前使用的activity組件的界面后置(即隱藏),后續(xù),當(dāng)用戶存在重新使用所述未退出的應(yīng)用程序的需求時(shí),可能會(huì)通過操作所述應(yīng)用程序的圖標(biāo)調(diào)出該應(yīng)用程序。

針對(duì)該應(yīng)用場景,申請(qǐng)人考慮到,用戶往往會(huì)對(duì)應(yīng)用程序中最近使用并隱藏的activity組件有較大的繼續(xù)使用需求,因此,本申請(qǐng)中,當(dāng)獲得用戶通過操作所述應(yīng)用程序的圖標(biāo)所產(chǎn)生的啟動(dòng)指令時(shí),基于所述主棧以及所述第一棧中最近動(dòng)作的棧,對(duì)該指令進(jìn)行響應(yīng),可以理解的是,所述應(yīng)用程序中最近使用的activity組件所對(duì)應(yīng)的棧即為最近動(dòng)作的棧,從而,基于所述主棧以及所述第一棧中最近動(dòng)作的棧對(duì)該指令進(jìn)行響應(yīng),可使得將應(yīng)用程序恢復(fù)至最近使用的activity組件供用戶繼續(xù)使用。

本申請(qǐng)中,如上文所述,基于至少兩個(gè)棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理,可以實(shí)現(xiàn)同時(shí)打開并顯示處于不同棧中的不同activity組件,如同時(shí)打開并顯示處于所述主棧及所述第一棧中的不同activity組件等,不同棧中的activity組件的管理是互相獨(dú)立的,互不影響,參考圖5的示意圖,圖5中具體以分屏方式實(shí)現(xiàn)對(duì)不同棧的不同activity組件進(jìn)行同時(shí)顯示,實(shí)際應(yīng)用中,用戶可通過執(zhí)行相應(yīng)操作,來實(shí)現(xiàn)對(duì)不同棧的不同activity組件進(jìn)行分屏同時(shí)顯示,在此基礎(chǔ)上,用戶可通過執(zhí)行相應(yīng)選擇操作,從分屏同時(shí)顯示的多個(gè)activity組件界面中,選擇出所需的activity組件進(jìn)行使用,從而解決了現(xiàn)有技術(shù)中不能同時(shí)應(yīng)用兩個(gè)activity組件的問題。

本申請(qǐng)中,基于至少兩個(gè)棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理,還可以實(shí)現(xiàn)跨棧的不同activity組件的直接跳轉(zhuǎn),參考圖6的示意圖,在實(shí)施時(shí),可在當(dāng)前activity組件的界面中設(shè)置一顯示跳轉(zhuǎn)控件(具體可以為浮窗形式),該顯示跳轉(zhuǎn)控件用于指示跳轉(zhuǎn)至非當(dāng)前棧中的activity組件,其中,所述非當(dāng)前棧為所述當(dāng)前activity組件所在棧除外的其他棧,用戶可通過操作該顯示跳轉(zhuǎn)控件觸發(fā)一跳轉(zhuǎn)指令,在此基礎(chǔ)上,當(dāng)系統(tǒng)接收到該指令時(shí),基于所述主棧以及所述第一棧中的非當(dāng)前棧,對(duì)該指令進(jìn)行響應(yīng),使得實(shí)現(xiàn)從當(dāng)前棧的當(dāng)前activity組件的界面,直接跳轉(zhuǎn)至非當(dāng)前棧的棧頂activity組件的界面。

仍以圖6為例,假設(shè)圖6中顯示的當(dāng)前界面,是微信主棧中的一聊天組件的界面,該界面中的浮窗用于指示顯示微信第一棧中的一文章組件的界面,則當(dāng)用戶通過操作所述浮窗觸發(fā)一跳轉(zhuǎn)指令時(shí),可基于非當(dāng)前棧,即基于所述第一棧對(duì)該跳轉(zhuǎn)指令進(jìn)行響應(yīng),使得從當(dāng)前的基于主棧的聊天界面直接跳轉(zhuǎn)至基于所述第一棧的文章界面,從而實(shí)現(xiàn)了跨棧activity組件的直接跳轉(zhuǎn),而不必如現(xiàn)有技術(shù)般,需通過執(zhí)行一系列復(fù)雜的操作才能實(shí)現(xiàn)聊天界面至文章界面的切換,提升了應(yīng)用的友好程度。

實(shí)際實(shí)施本申請(qǐng)時(shí),可通過預(yù)先修改現(xiàn)有技術(shù)中電子設(shè)備的操作系統(tǒng)的framework代碼,實(shí)現(xiàn)在系統(tǒng)底層對(duì)各應(yīng)用程序的棧進(jìn)行管理,并具體實(shí)現(xiàn)基于至少兩個(gè)棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理,以此解決了現(xiàn)有技術(shù)中在應(yīng)用層基于一個(gè)棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理的各種弊端。

實(shí)施例五

本申請(qǐng)實(shí)施例五提供一種電子設(shè)備,該電子設(shè)備可以是但不局限于諸如智能手機(jī)、平板電腦等設(shè)備,參考圖7示出的一種電子設(shè)備實(shí)施例五的結(jié)構(gòu)示意圖,所述電子設(shè)備可以包括:

處理器1,所述處理器1用于執(zhí)行:

獲得應(yīng)用程序的activity組件,其中,所述應(yīng)用程序包括多個(gè)activity組件,所述應(yīng)用程序?yàn)殡娮釉O(shè)備上安裝的任意一個(gè)應(yīng)用程序;

基于所述應(yīng)用程序的activity組件為所述應(yīng)用程序建立至少兩個(gè)棧;

基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件。

所述應(yīng)用程序,具體地,例如可以是電子設(shè)備上安裝的微信、qq等任意一個(gè)應(yīng)用程序,所述應(yīng)用程序包括多個(gè)activity組件,應(yīng)用程序的activity組件在啟動(dòng)后,在電子設(shè)備屏幕上對(duì)應(yīng)提供一個(gè)屏幕界面,用于與用戶間的交互以完成某項(xiàng)任務(wù)。用戶可通過在應(yīng)用程序中執(zhí)行相應(yīng)操作,來關(guān)閉一個(gè)activity組件、或者啟動(dòng)一個(gè)activity組件,或者進(jìn)行activity組件之間的切換,以使得通過切換將所需的activity組件的界面前置等。

處理器1具體可基于activitymanagerservice(ams,組件管理服務(wù))來獲得用戶針對(duì)所述應(yīng)用程序的操作所觸發(fā)產(chǎn)生的activity組件。

區(qū)別于現(xiàn)有技術(shù)中僅為應(yīng)用程序建立一個(gè)棧,并基于所述一個(gè)棧對(duì)應(yīng)用程序的activity組件進(jìn)行管理的方式,本申請(qǐng)中,基于應(yīng)用程序的activity組件為所述應(yīng)用程序建立至少兩個(gè)棧,并基于所建立的至少兩個(gè)棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理,以此解決現(xiàn)有技術(shù)不能同時(shí)應(yīng)用多于一個(gè)的activity組件的問題,如不能同時(shí)打開文章及聊天窗口進(jìn)行應(yīng)用的問題等。

其中,可根據(jù)預(yù)定規(guī)則為應(yīng)用程序建立至少兩個(gè)棧,例如,假設(shè)應(yīng)用程序共包含n個(gè)activity組件,則可依據(jù)預(yù)定規(guī)則為應(yīng)用程序建立主、從兩個(gè)棧,每個(gè)棧中對(duì)應(yīng)包含符合該棧入棧規(guī)則的相應(yīng)個(gè)數(shù)的activity組件,從而后續(xù)可基于所述主、從兩個(gè)棧對(duì)各自棧中的activity組件進(jìn)行管理;當(dāng)然,也可依據(jù)預(yù)定規(guī)則為應(yīng)用程序建立多于兩個(gè)的棧,使得后續(xù)基于所建立的多于兩個(gè)的棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理,本實(shí)施例對(duì)此不作限定。

在為應(yīng)用程序建立有至少兩個(gè)棧的基礎(chǔ)上,可基于所述至少兩個(gè)棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理。例如,可以根據(jù)屏幕上當(dāng)前前置顯示的activity組件所對(duì)應(yīng)的棧,對(duì)該activity組件進(jìn)行回退管理,確定當(dāng)對(duì)該activity組件執(zhí)行回退操作時(shí),具體應(yīng)回退至應(yīng)用程序的哪個(gè)activity組件;或者,還可以根據(jù)所建立的至少兩個(gè)棧中的不同棧,同時(shí)打開并顯示分別處于該不同棧中的不同activity組件,以使得用戶能夠?qū)Σ煌腶ctivity組件進(jìn)行同時(shí)應(yīng)用等。

由以上方案可知,本申請(qǐng)?zhí)峁┑碾娮釉O(shè)備,獲得應(yīng)用程序的activity組件,其中,所述應(yīng)用程序包括多個(gè)activity組件,所述應(yīng)用程序?yàn)殡娮釉O(shè)備上安裝的任意一個(gè)應(yīng)用程序;基于所述應(yīng)用程序的activity組件為所述應(yīng)用程序建立至少兩個(gè)棧;在此基礎(chǔ)上,基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件。由于本申請(qǐng)基于至少兩個(gè)棧來管理應(yīng)用程序的每個(gè)activity組件,不同棧中activity的使用相互獨(dú)立,互不影響,從而可實(shí)現(xiàn)至少兩個(gè)activity組件的同時(shí)使用,因此,本申請(qǐng)方案能夠解決現(xiàn)有技術(shù)的社交應(yīng)用中不能同時(shí)使用文章及聊天功能的問題,進(jìn)一步提升了應(yīng)用的友好程度。

實(shí)施例六

本實(shí)施例中,所述處理器,基于所述應(yīng)用程序的activity組件為所述應(yīng)用程序建立至少兩個(gè)棧,可以通過以下處理過程實(shí)現(xiàn):

確定activity組件的相關(guān)參數(shù)是否滿足預(yù)定條件;基于表征所述activity組件的相關(guān)參數(shù)滿足預(yù)定條件的第一確定結(jié)果,建立與所述activity組件所對(duì)應(yīng)的第一棧;基于表征所述activity組件的相關(guān)參數(shù)不滿足預(yù)定條件的第二確定結(jié)果,建立與所述應(yīng)用程序所對(duì)應(yīng)的主棧。

activity組件的相關(guān)參數(shù),可以是用于標(biāo)識(shí)所述activity組件的相關(guān)標(biāo)識(shí)信息,更具體地,該標(biāo)識(shí)信息可以是包含有組件類名及組件所屬應(yīng)用的應(yīng)用包名的信息,以使得能夠通過activity組件的標(biāo)識(shí)信息,識(shí)別出該activity組件具體為哪個(gè)應(yīng)用程序的哪個(gè)組件。

所述預(yù)定條件可以是預(yù)先制定的針對(duì)為組件建棧的指示信息,該指示信息具體用于指示需為應(yīng)用程序中的哪些activity組件,建立獨(dú)立于應(yīng)用程序的主棧的棧(可作為從棧),使得設(shè)備能夠基于應(yīng)用程序的主棧以及該獨(dú)立于主棧的棧,對(duì)兩個(gè)棧中的activity組件進(jìn)行獨(dú)立管理。

更進(jìn)一步地,所述指示信息可以包括至少一個(gè)activity組件所對(duì)應(yīng)的所述相關(guān)參數(shù)信息,如包括至少一個(gè)activity組件的標(biāo)識(shí)信息等,從而使得能夠依據(jù)該指示信息,為該指示信息所指示的至少一個(gè)activity組件,對(duì)應(yīng)建立一個(gè)獨(dú)立于應(yīng)用程序的主棧的棧。

可以理解的是,當(dāng)所述預(yù)定條件為上述指示信息時(shí),若activity組件的相關(guān)參數(shù)如activity組件的標(biāo)識(shí)信息,包含在該指示信息中,則表示該activity組件的相關(guān)參數(shù)符合所述預(yù)定條件。否則,若activity組件的相關(guān)參數(shù)不包含該指示信息中,則表示不符合所述預(yù)定條件。

如果所述activity組件的相關(guān)參數(shù)滿足所述預(yù)定條件,比如所述activity組件的標(biāo)識(shí)信息包含在所述指示信息中,則建立與該activity組件相對(duì)應(yīng)的第一棧,該第一棧即為一獨(dú)立于應(yīng)用程序的主棧的棧,也可稱之為從棧。以支持后續(xù)基于該第一棧對(duì)所述activity組件進(jìn)行管理,進(jìn)而使得該第一棧中activity組件的管理與主棧中activity組件的管理能夠互相獨(dú)立、互不影響。

如果所述activity組件的相關(guān)參數(shù)不滿足所述預(yù)定條件,比如所述activity組件的標(biāo)識(shí)信息不包含在所述指示信息中,則建立與所述應(yīng)用程序所對(duì)應(yīng)的主棧。

其中,所述主棧是面向整個(gè)應(yīng)用程序的棧,所述第一棧即從棧,是面向應(yīng)用程序中需要進(jìn)行獨(dú)立(獨(dú)立于主棧中的activity)建棧管理的activity組件的棧,應(yīng)用程序中,依據(jù)規(guī)則所確定的需要進(jìn)行獨(dú)立建棧管理的activity組件除外的其他activity組件,在應(yīng)用過程中皆可基于應(yīng)用程序的主棧進(jìn)行管理。所述規(guī)則比如可以是上述的預(yù)定條件,或者也可以是在上述預(yù)定條件的基礎(chǔ)上結(jié)合其他因素(如activity的啟動(dòng)源等)所構(gòu)成的規(guī)則。

實(shí)施例七

本實(shí)施例中,所述處理器,基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件,可以通過以下處理過程實(shí)現(xiàn):

獲得新的activity組件;基于新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定將所述新的activity組件加入所述主棧還是第一棧;或者,獲得新的activity組件;基于新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定針對(duì)所述新的activity組件建立與所述新的activity組件所對(duì)應(yīng)的所述第一?;蛘呓⑴c所述應(yīng)用程序所對(duì)應(yīng)的所述主棧;或者,獲得新的activity組件;基于新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定將所述新的activity組件加入所述第一棧且位于所述第一棧的棧頂。

其中,所述新的activity組件,可以是用戶在應(yīng)用程序當(dāng)前前置顯示的某一activity組件的界面上通過執(zhí)行相應(yīng)操作,所觸發(fā)啟動(dòng)的組件,例如,在當(dāng)前前置顯示的微信文章界面(對(duì)應(yīng)一activity組件)中,通過執(zhí)行打開某一文章的操作,實(shí)現(xiàn)啟動(dòng)該文章對(duì)應(yīng)的activity組件等;或者,也可以是用戶在應(yīng)用程序的主界面中通過執(zhí)行相應(yīng)操作,所觸發(fā)啟動(dòng)的組件,如在微信主界面中,通過執(zhí)行打開朋友圈的操作,實(shí)現(xiàn)啟動(dòng)朋友圈對(duì)應(yīng)的activity組件,或通過執(zhí)行打開主界面中所顯示的某一聯(lián)系人的聊天窗口,實(shí)現(xiàn)啟動(dòng)該聊天窗口對(duì)應(yīng)的activity組件等。

所述新的activity組件同樣地可基于activitymanagerservice來獲得。

所述新的activity組件的啟動(dòng)源,即為所述activity組件啟動(dòng)時(shí)所基于的應(yīng)用程序的部分,可以理解的是,該啟動(dòng)源可以是應(yīng)用程序的某一activity組件(提供的界面),也可以是應(yīng)用程序?qū)?yīng)的主界面。

在獲得新的activity組件后,可對(duì)所述新的activity組件進(jìn)行相應(yīng)的建?;蛉霔9芾怼?/p>

其中,可基于該新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定將該新的activity組件加入所述主棧還是第一棧。

具體地,假設(shè)當(dāng)前已為應(yīng)用程序建立有所需的至少兩個(gè)棧,比如已建立所述第一棧及所述主棧,則若所述新的activity組件的相關(guān)參數(shù)滿足所述預(yù)定條件,比如其標(biāo)識(shí)信息包含在上述指示信息中,則可直接確定將所述新的activity組件加入所述第一棧中;若所述新的activity組件的相關(guān)參數(shù)不滿足所述預(yù)定條件,但所述新的activity組件的啟動(dòng)源對(duì)應(yīng)的組件滿足所述預(yù)定條件,則可知所述新的activity組件的啟動(dòng)源處于所述第一棧,即相當(dāng)于所述新的activity組件基于所述第一棧啟動(dòng),此種情況下,同樣可將所述新的activity組件加入所述第一棧中。若所述新的activity組件的相關(guān)參數(shù)不滿足所述預(yù)定條件,且所述新的activity組件的啟動(dòng)源處于所述主棧,則將所述新的activity組件加入所述主棧。

或者,還可以基于所述新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定針對(duì)所述新的activity組件,是建立與所述新的activity組件所對(duì)應(yīng)的所述第一棧,還是建立與所述應(yīng)用程序所對(duì)應(yīng)的所述主棧。

當(dāng)依據(jù)所述新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定出需將所述新的activity組件加入第一棧時(shí),若當(dāng)前所述第一棧還未建立或已關(guān)閉,則需為所述新的activity組件建立與其對(duì)應(yīng)的第一棧;同理,當(dāng)依據(jù)所述新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定出需將所述新的activity組件加入應(yīng)用程序的主棧時(shí),若當(dāng)前還未建立所述主棧,則建立與應(yīng)用程序相對(duì)應(yīng)的主棧,以使得能夠?qū)⒃撔碌腶ctivity組件加入所述主棧。

或者,還可以基于所述新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定將該新的activity組件加入所述第一棧且位于所述第一棧的棧頂。

當(dāng)基于所述新的activity組件的啟動(dòng)源以及所述預(yù)定條件,確定出需將該新的activity組件加入所述第一棧時(shí),則具體基于棧的fifo(firstinfirstout,先進(jìn)先出)特點(diǎn),將該新的activity組件加入所述第一棧的棧頂。同理,如果確定出需將該新的activity組件加入主棧,則同樣基于棧特點(diǎn),將該新的activity組件加入主棧的棧頂。

本實(shí)施例在獲得新的activity組件時(shí),通過對(duì)該新的activity組件進(jìn)行相應(yīng)的建棧或入棧處理,可使得最終將應(yīng)用程序的各個(gè)已啟動(dòng)的activity組件分別加入至少兩個(gè)不同的棧,進(jìn)而可為基于至少兩個(gè)不同的棧對(duì)應(yīng)用程序的activity組件進(jìn)行管理提供支持。

實(shí)施例八

本實(shí)施例中,所述處理器,基于所述至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件,可以通過以下處理過程實(shí)現(xiàn):

當(dāng)所述第一棧中不具有任何activity組件時(shí),關(guān)閉所述第一棧;或者,響應(yīng)操作所述應(yīng)用程序的圖標(biāo)所產(chǎn)生的啟動(dòng)指令,以所述主棧以及所述第一棧中最近動(dòng)作的棧進(jìn)行響應(yīng);或者,響應(yīng)操作所述應(yīng)用程序的當(dāng)前頁面下顯示跳轉(zhuǎn)控件所產(chǎn)生的跳轉(zhuǎn)指令,以所在所述主棧以及所述第一棧中的非當(dāng)前棧進(jìn)行響應(yīng)。

其中,如上文所述,當(dāng)啟動(dòng)應(yīng)用程序的某一activity組件時(shí),需根據(jù)該activity組件的啟動(dòng)源以及所述預(yù)定條件,建立與該activity組件相對(duì)應(yīng)的第一?;蚺c應(yīng)用程序相對(duì)應(yīng)的主棧,或者,將該activity組件加入所述第一?;蛩鲋鳁?,那么,相對(duì)應(yīng)地,在退出所述activity組件時(shí),如退出微信文章對(duì)應(yīng)的activity組件時(shí),會(huì)將該activity組件從其所在的棧中移出,比如從其所在的第一棧中移出等,當(dāng)棧中所有activity組件均被移出后,則會(huì)產(chǎn)生一個(gè)空棧,此種情況下,可將不具有任何activity組件的空棧關(guān)閉。從而,對(duì)于為應(yīng)用程序所建立的所述第一棧及所述主棧而言,當(dāng)所述第一棧中不具有任何activity組件時(shí),可關(guān)閉所述第一棧,當(dāng)所述主棧中不具有任何activity組件時(shí),可關(guān)閉所述主棧。

所述關(guān)閉棧具體可以是刪除棧或銷毀棧等。在關(guān)閉某一個(gè)棧,如關(guān)閉所述第一?;蛑鳁:螅罄m(xù),當(dāng)再次啟動(dòng)應(yīng)用程序的某一activity組件,并需要將該activity組件加入第一棧或主棧時(shí),可針對(duì)啟動(dòng)的所述activity組件,動(dòng)態(tài)建立與該activity組件相對(duì)應(yīng)的第一棧,或動(dòng)態(tài)建立與應(yīng)用程序?qū)?yīng)的主棧,進(jìn)而實(shí)現(xiàn)對(duì)該activity組件進(jìn)行相應(yīng)的入棧處理。

也就是說,本申請(qǐng)中依據(jù)至少兩個(gè)棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理的過程是動(dòng)態(tài)的,如可依據(jù)activity組件的實(shí)際啟動(dòng)或退出事件等,對(duì)activity組件進(jìn)行動(dòng)態(tài)的建立棧、加入棧、移出棧或關(guān)閉棧等管理操作,其中,當(dāng)退出某一activity組件,并將該activity組件從其所在的棧中移出后,系統(tǒng)基于該activity組件所在的棧進(jìn)行回退管理,具體地,將該被移出的activity組件所在棧的新的棧頂activity組件作為當(dāng)前組件,進(jìn)行界面展示。

人們?cè)趩?dòng)并使用應(yīng)用程序過程中,如啟動(dòng)并使用應(yīng)用程序的某一activity組件過程中,較為常見的一種場景是,在未退出當(dāng)前應(yīng)用程序某一activity組件的情況下,調(diào)出其他應(yīng)用程序進(jìn)行使用,從而導(dǎo)致未退出的應(yīng)用程序中當(dāng)前使用的activity組件的界面后置(即隱藏),后續(xù),當(dāng)用戶存在重新使用所述未退出的應(yīng)用程序的需求時(shí),可能會(huì)通過操作所述應(yīng)用程序的圖標(biāo)調(diào)出該應(yīng)用程序。

針對(duì)該應(yīng)用場景,申請(qǐng)人考慮到,用戶往往會(huì)對(duì)應(yīng)用程序中最近使用并隱藏的activity組件有較大的繼續(xù)使用需求,因此,本申請(qǐng)中,當(dāng)獲得用戶通過操作所述應(yīng)用程序的圖標(biāo)所產(chǎn)生的啟動(dòng)指令時(shí),基于所述主棧以及所述第一棧中最近動(dòng)作的棧,對(duì)該指令進(jìn)行響應(yīng),可以理解的是,所述應(yīng)用程序中最近使用的activity組件所對(duì)應(yīng)的棧即為最近動(dòng)作的棧,從而,基于所述主棧以及所述第一棧中最近動(dòng)作的棧對(duì)該指令進(jìn)行響應(yīng),可使得將應(yīng)用程序恢復(fù)至最近使用的activity組件供用戶繼續(xù)使用。

本申請(qǐng)中,如上文所述,基于至少兩個(gè)棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理,可以實(shí)現(xiàn)同時(shí)打開并顯示處于不同棧中的不同activity組件,如同時(shí)打開并顯示處于所述主棧及所述第一棧中的不同activity組件等,不同棧中的activity組件的管理是互相獨(dú)立的,互不影響,參考圖5的示意圖,圖5中具體以分屏方式實(shí)現(xiàn)對(duì)不同棧的不同activity組件進(jìn)行同時(shí)顯示,實(shí)際應(yīng)用中,用戶可通過執(zhí)行相應(yīng)操作,來實(shí)現(xiàn)對(duì)不同棧的不同activity組件進(jìn)行分屏同時(shí)顯示,在此基礎(chǔ)上,用戶可通過執(zhí)行相應(yīng)選擇操作,從分屏同時(shí)顯示的多個(gè)activity組件界面中,選擇出所需的activity組件進(jìn)行使用,從而解決了現(xiàn)有技術(shù)中不能同時(shí)應(yīng)用兩個(gè)activity組件的問題。

本申請(qǐng)中,基于至少兩個(gè)棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理,還可以實(shí)現(xiàn)跨棧的不同activity組件的直接跳轉(zhuǎn),參考圖6的示意圖,在實(shí)施時(shí),可在當(dāng)前activity組件的界面中設(shè)置一顯示跳轉(zhuǎn)控件(具體可以為浮窗形式),該顯示跳轉(zhuǎn)控件用于指示跳轉(zhuǎn)至非當(dāng)前棧中的activity組件,其中,所述非當(dāng)前棧為所述當(dāng)前activity組件所在棧除外的其他棧,用戶可通過操作該顯示跳轉(zhuǎn)控件觸發(fā)一跳轉(zhuǎn)指令,在此基礎(chǔ)上,當(dāng)系統(tǒng)接收到該指令時(shí),基于所述主棧以及所述第一棧中的非當(dāng)前棧,對(duì)該指令進(jìn)行響應(yīng),使得實(shí)現(xiàn)從當(dāng)前棧的當(dāng)前activity組件的界面,直接跳轉(zhuǎn)至非當(dāng)前棧的棧頂activity組件的界面。

仍以圖6為例,假設(shè)圖6中顯示的當(dāng)前界面,是微信主棧中的一聊天組件的界面,該界面中的浮窗用于指示顯示微信第一棧中的一文章組件的界面,則當(dāng)用戶通過操作所述浮窗觸發(fā)一跳轉(zhuǎn)指令時(shí),可基于非當(dāng)前棧,即基于所述第一棧對(duì)該跳轉(zhuǎn)指令進(jìn)行響應(yīng),使得從當(dāng)前的基于主棧的聊天界面直接跳轉(zhuǎn)至基于所述第一棧的文章界面,從而實(shí)現(xiàn)了跨棧activity組件的直接跳轉(zhuǎn),而不必如現(xiàn)有技術(shù)般,需通過執(zhí)行一系列復(fù)雜的操作才能實(shí)現(xiàn)聊天界面至文章界面的切換,提升了應(yīng)用的友好程度。

實(shí)際實(shí)施本申請(qǐng)時(shí),可通過預(yù)先修改現(xiàn)有技術(shù)中電子設(shè)備的操作系統(tǒng)的framework代碼,實(shí)現(xiàn)在系統(tǒng)底層對(duì)各應(yīng)用程序的棧進(jìn)行管理,并具體實(shí)現(xiàn)基于至少兩個(gè)棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理,以此解決了現(xiàn)有技術(shù)中在應(yīng)用層基于一個(gè)棧對(duì)應(yīng)用程序的各個(gè)activity組件進(jìn)行管理的各種弊端。

本方案的一個(gè)實(shí)施例保護(hù)的是在操作系統(tǒng)os的kernel層作改進(jìn),具體而言是基于activitymanagerservice、activity和棧的改進(jìn)。以達(dá)到針對(duì)一個(gè)應(yīng)用程序基于至少兩個(gè)棧管理所述應(yīng)用程序的每個(gè)activity組件。至少實(shí)現(xiàn)一個(gè)應(yīng)用中從聊天界面一步直接切換到在該應(yīng)用內(nèi)之前的閱讀界面,進(jìn)一步能夠切換到閱讀界面的之前閱讀位置。從而避免多步的切換和選擇的操作(即,用戶需要記住這個(gè)切換和點(diǎn)選過程的全部操作步驟)。由于是在操作系統(tǒng)os的kernel層所做的改進(jìn),本方案的實(shí)施例能夠針對(duì)任意一個(gè)安裝在電子設(shè)備上的且基于當(dāng)前該os操作系統(tǒng)運(yùn)行的應(yīng)用程序都能夠通過至少兩個(gè)棧進(jìn)行管理。

需要說明的是,本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。

為了描述的方便,描述以上系統(tǒng)或裝置時(shí)以功能分為各種模塊或單元分別描述。當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。

通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。

最后,還需要說明的是,在本文中,諸如第一、第二、第三和第四等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。

以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1