本發(fā)明涉及計(jì)算機(jī)應(yīng)用程序領(lǐng)域,更具體地,涉及一種顯示應(yīng)用程序下載安裝狀態(tài)的方法及其對應(yīng)裝置。
背景技術(shù):
隨著智能終端的普及,用戶越來越習(xí)慣于通過應(yīng)用商店下載應(yīng)用程序,全球應(yīng)用程序的下載數(shù)量、應(yīng)用創(chuàng)新的數(shù)量都在加速增長。在此環(huán)境下,為滿足用戶體驗(yàn),顯示安裝進(jìn)度及狀態(tài)是一種必不可少的技術(shù),能使用戶及時了解當(dāng)前應(yīng)用程序下載安裝任務(wù)的進(jìn)度。
現(xiàn)有的技術(shù)方案中,用戶通過應(yīng)用商店下載安裝應(yīng)用程序時,為查看下載安裝狀態(tài)時需要進(jìn)入應(yīng)用商店中才能查看,無法在桌面直接查看下載安裝狀態(tài),降低了用戶體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的首要目的旨在提供一種顯示應(yīng)用程序下載安裝狀態(tài)的方法及其相應(yīng)原裝置;
為了實(shí)現(xiàn)上述目的,第一方面,本發(fā)明提供了一種顯示應(yīng)用程序下載安裝狀態(tài)的方法,包括如下步驟:
在應(yīng)用商店和桌面顯示用于指示該應(yīng)用程序的下載安裝狀態(tài)的指示圖標(biāo);
接收針對應(yīng)用商店與桌面中其中一方的所述指示圖標(biāo)而產(chǎn)生的下載安裝狀態(tài)修改指令;
根據(jù)該下載安裝狀態(tài)修改指令,應(yīng)用商店與桌面中,接收該指令的一方執(zhí)行針對自身顯示的指示圖標(biāo)的修改,并且,回調(diào)另一方對應(yīng)的執(zhí)行函數(shù)以完成在該另一方所顯示的指示圖標(biāo)的修改,以使修改后的指示圖標(biāo)所指示的下載安裝狀態(tài)相對修改前發(fā)生改變。
優(yōu)選地,所述在應(yīng)用商店和桌面顯示用于指示該應(yīng)用程序的下載安裝狀態(tài)的指示圖標(biāo)的步驟中,具體包括:
應(yīng)用商店進(jìn)程接收用戶指令安裝指定的應(yīng)用程序;
應(yīng)用商店進(jìn)程創(chuàng)建指示該應(yīng)用程序的安裝狀態(tài)的指示圖標(biāo)并發(fā)送指定應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱至桌面;
桌面進(jìn)程創(chuàng)建并顯示應(yīng)用程序的指示圖標(biāo)在桌面上。
優(yōu)選地,應(yīng)用商店進(jìn)程創(chuàng)建該指示圖標(biāo)的同時在該指示圖標(biāo)中顯示等待中以標(biāo)示該應(yīng)用程序處于等待下載狀態(tài)。
優(yōu)選地,應(yīng)用商店通過call方法調(diào)用桌面的創(chuàng)建下載變量,將應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱反饋至桌面。
優(yōu)選地,所述應(yīng)用商店與所述桌面通過預(yù)置于Android系統(tǒng)的內(nèi)容提供者類中的call方法進(jìn)行通信。
優(yōu)選地,所述內(nèi)容提供者類為根據(jù)數(shù)據(jù)共享規(guī)則自定義的ContentProvider類,用以實(shí)現(xiàn)應(yīng)用商店與桌面的跨應(yīng)用數(shù)據(jù)共享。
優(yōu)選地,在應(yīng)用程序的原圖標(biāo)上添加蒙版以作為指示圖標(biāo),并在圖標(biāo)的下方顯示名稱為等待下載以標(biāo)示該應(yīng)用程序處于等待下載狀態(tài)。
優(yōu)選地,所述桌面進(jìn)程創(chuàng)建并顯示應(yīng)用程序的指示圖標(biāo)的同時將該應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱存儲在桌面的數(shù)據(jù)庫中。
優(yōu)選地,所述下載安裝包括應(yīng)用程序的下載任務(wù)和安裝任務(wù)。
優(yōu)選地,所述下載安裝狀態(tài)包括所述下載任務(wù)中的等待下載、正在下載、暫停下載、繼續(xù)下載、刪除應(yīng)用程序、下載完成、下載失敗和重新下載中其中一項(xiàng),還包括安裝任務(wù)中的開始安裝、安裝失敗、重新安裝和安裝完成中其中一項(xiàng)。
優(yōu)選地,通過根據(jù)應(yīng)用程序下載安裝狀態(tài)修改指令所自定義的執(zhí)行函數(shù)進(jìn)行對應(yīng)修改。
優(yōu)選地,根據(jù)下載安裝狀態(tài)的修改指令,修改后的指示圖標(biāo)的變化如下:
當(dāng)應(yīng)用程序處于等待下載狀態(tài),接收到開始下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示下載進(jìn)度條,桌面進(jìn)程的指示圖標(biāo)上的蒙版的覆蓋區(qū)域由下往上褪去,褪去蒙版的圖標(biāo)區(qū)域占整個圖標(biāo)區(qū)域的比值為當(dāng)前應(yīng)用程序下載的進(jìn)度百分比,指示圖標(biāo)下方名稱顯示為下載中;
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到暫停下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為繼續(xù)下載,桌面進(jìn)程的指示圖標(biāo)上蒙版暫停在當(dāng)前下載的進(jìn)度,指示圖標(biāo)下方名稱顯示為暫停下載;
當(dāng)應(yīng)用程序處于暫停下載狀態(tài),接收到繼續(xù)下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為下載進(jìn)度條,桌面進(jìn)程的指示圖標(biāo)上的蒙版以當(dāng)前位置繼續(xù)褪去,指示圖標(biāo)下方名稱顯示為下載中;
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到刪除應(yīng)用程序的修改指令時,應(yīng)用商店進(jìn)程刪除該指示圖標(biāo),桌面進(jìn)程刪除該指示圖標(biāo);
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到下載失敗狀態(tài)的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為下載失敗,桌面進(jìn)程的指示圖標(biāo)下方的名稱顯示為下載失敗;
當(dāng)應(yīng)用程序處于下載失敗狀態(tài),接收到的重新下載的修改指令時,應(yīng)用商店進(jìn)程與桌面進(jìn)程指示圖標(biāo)恢復(fù)至正在下載狀態(tài);
當(dāng)應(yīng)用程序處于下載成功狀態(tài),接收到開始安裝的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝中,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為安裝中;
當(dāng)應(yīng)用程序處于安裝中狀態(tài),接收到安裝失敗的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝失敗,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為安裝失??;
當(dāng)應(yīng)用程序處于安裝失敗狀態(tài),接收到重新安裝的修改指令時,用于商店進(jìn)程與桌面進(jìn)程的指示圖標(biāo)恢復(fù)至正在安裝狀態(tài)。
當(dāng)應(yīng)用程序處于正在安裝中狀態(tài),接收到安裝成功的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝完成,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為應(yīng)用程序的名稱。
第二方面,本發(fā)明還提供了一種顯示應(yīng)用程序下載安裝狀態(tài)的裝置,其特征在于,包括:
顯示模塊,在應(yīng)用商店和桌面顯示用于指示該應(yīng)用程序的下載安裝狀態(tài)的指示圖標(biāo);
接收模塊,接收針對應(yīng)用商店與桌面中其中一方的所述指示圖標(biāo)而產(chǎn)生的下載安裝狀態(tài)修改指令;
執(zhí)行模塊,根據(jù)該下載安裝狀態(tài)修改指令,應(yīng)用商店與桌面中,接收該指令的一方執(zhí)行針對自身顯示的指示圖標(biāo)的修改,并且,回調(diào)另一方對應(yīng)的執(zhí)行函數(shù)以完成在該另一方所顯示的指示圖標(biāo)的修改,以使修改后的指示圖標(biāo)所指示的下載安裝狀態(tài)相對修改前發(fā)生改變。
優(yōu)選地,所述顯示模塊具體包括:
接收單元,應(yīng)用商店進(jìn)程接收用戶指令下載安裝指定的應(yīng)用程序;
創(chuàng)建單元,應(yīng)用商店進(jìn)程創(chuàng)建指示該應(yīng)用程序的下載安裝狀態(tài)的指示圖標(biāo)并發(fā)送指定應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱至桌面;
顯示單元,桌面進(jìn)程創(chuàng)建并顯示應(yīng)用程序的指示圖標(biāo)在桌面上。
優(yōu)選地,應(yīng)用商店進(jìn)程創(chuàng)建該指示圖標(biāo)的同時在該指示圖標(biāo)中顯示等待中以標(biāo)示該應(yīng)用程序處于等待下載狀態(tài)。
優(yōu)選地,應(yīng)用商店通過call方法調(diào)用桌面的創(chuàng)建下載變量,將應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱反饋至桌面。
優(yōu)選地,所述應(yīng)用商店與所述桌面通過預(yù)置于Android系統(tǒng)的內(nèi)容提供者類中的call方法進(jìn)行通信。
優(yōu)選地,所述內(nèi)容提供者類為根據(jù)數(shù)據(jù)共享規(guī)則自定義的ContentProvider類,用以實(shí)現(xiàn)應(yīng)用商店與桌面的跨應(yīng)用數(shù)據(jù)共享。
優(yōu)選地,在應(yīng)用程序的原圖標(biāo)上添加蒙版以作為指示圖標(biāo),并在圖標(biāo)的下方顯示名稱為等待下載以標(biāo)示該應(yīng)用程序處于等待下載狀態(tài)。
優(yōu)選地,所述桌面進(jìn)程創(chuàng)建并顯示應(yīng)用程序的指示圖標(biāo)的同時將該應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱存儲在桌面的數(shù)據(jù)庫中。
優(yōu)選地,所述下載安裝包括應(yīng)用程序的下載任務(wù)和安裝任務(wù)。
優(yōu)選地,所述下載安裝狀態(tài)包括所述下載任務(wù)中的等待下載、正在下載、暫停下載、繼續(xù)下載、刪除應(yīng)用程序、下載完成、下載失敗和重新下載中其中一項(xiàng),還包括安裝任務(wù)中的開始安裝、安裝失敗、重新安裝和安裝完成中其中一項(xiàng)。
優(yōu)選地,通過根據(jù)應(yīng)用程序下載安裝狀態(tài)修改指令所自定義的執(zhí)行函數(shù)進(jìn)行對應(yīng)修改。
優(yōu)選地,根據(jù)下載安裝狀態(tài)的修改指令,修改后的指示圖標(biāo)的變化如下:
當(dāng)應(yīng)用程序處于等待下載狀態(tài),接收到開始下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示下載進(jìn)度條,桌面進(jìn)程的指示圖標(biāo)上的蒙版的覆蓋區(qū)域由下往上褪去,褪去蒙版的圖標(biāo)區(qū)域占整個圖標(biāo)區(qū)域的比值為當(dāng)前應(yīng)用程序下載的進(jìn)度百分比,指示圖標(biāo)下方名稱顯示為下載中;
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到暫停下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為繼續(xù)下載,桌面進(jìn)程的指示圖標(biāo)上蒙版暫停在當(dāng)前下載的進(jìn)度,指示圖標(biāo)下方名稱顯示為暫停下載;
當(dāng)應(yīng)用程序處于暫停下載狀態(tài),接收到繼續(xù)下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為下載進(jìn)度條,桌面進(jìn)程的指示圖標(biāo)上的蒙版以當(dāng)前位置繼續(xù)褪去,指示圖標(biāo)下方名稱顯示為下載中;
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到刪除應(yīng)用程序的修改指令時,應(yīng)用商店進(jìn)程刪除該指示圖標(biāo),桌面進(jìn)程刪除該指示圖標(biāo);
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到下載失敗狀態(tài)的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為下載失敗,桌面進(jìn)程的指示圖標(biāo)下方的名稱顯示為下載失??;
當(dāng)應(yīng)用程序處于下載失敗狀態(tài),接收到的重新下載的修改指令時,應(yīng)用商店進(jìn)程與桌面進(jìn)程指示圖標(biāo)恢復(fù)至正在下載狀態(tài);
當(dāng)應(yīng)用程序處于下載成功狀態(tài),接收到開始安裝的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝中,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為安裝中;
當(dāng)應(yīng)用程序處于安裝中狀態(tài),接收到安裝失敗的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝失敗,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為安裝失??;
當(dāng)應(yīng)用程序處于安裝失敗狀態(tài),接收到重新安裝的修改指令時,用于商店進(jìn)程與桌面進(jìn)程的指示圖標(biāo)恢復(fù)至正在安裝狀態(tài)。
當(dāng)應(yīng)用程序處于正在安裝中狀態(tài),接收到安裝成功的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝完成,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為應(yīng)用程序的名稱。
相對于現(xiàn)有技術(shù),本發(fā)明提供的技術(shù)方案中,當(dāng)用戶在應(yīng)用商店點(diǎn)擊下載指定應(yīng)用程序的時候,應(yīng)用商店進(jìn)程創(chuàng)建用于指示安裝狀態(tài)的指示圖標(biāo),并調(diào)用預(yù)置于Android系統(tǒng)的內(nèi)容提供者類的call方法回調(diào)桌面的創(chuàng)建下載變量,同時,將應(yīng)用程序的包名、圖標(biāo)和應(yīng)用程序名稱傳遞到桌面;桌面根據(jù)接收的創(chuàng)建指令及應(yīng)用程序信息創(chuàng)建下載安裝狀態(tài)指示圖標(biāo)。此時,應(yīng)用商店進(jìn)程與桌面中均生成指示應(yīng)用程序下載安裝狀態(tài)的指示圖標(biāo)。在安裝應(yīng)用程序過程中,針對應(yīng)用商店與桌面中其中一方的指示圖標(biāo)而產(chǎn)生的安裝狀態(tài)修改指令,應(yīng)用商店與桌面中,可執(zhí)行針對自身顯示的指示圖標(biāo)的修改,并且回調(diào)另一方對應(yīng)的執(zhí)行函數(shù)以完成在該另一方所顯示的指示圖標(biāo)的修改,以使修改后的指示圖標(biāo)所指示的下載安裝狀態(tài)相對修改前發(fā)生改變。所述針對下載安裝狀態(tài)指示圖標(biāo)的變化如:應(yīng)用程序在安裝中時,桌面指示圖標(biāo)上的蒙版根據(jù)安裝進(jìn)度從下往上褪去,用戶可根據(jù)蒙版覆蓋圖標(biāo)的范圍得知當(dāng)前下載進(jìn)度;當(dāng)應(yīng)用程序下載成功時,桌面的指示圖標(biāo)上的蒙版全部褪去,圖標(biāo)下方的名稱顯示為安裝中等等。
由此,在應(yīng)用程序下載安裝過程中,用戶通過應(yīng)用商店和桌面任意一個界面查看到下載安裝狀態(tài),從而能有效的提升用戶體驗(yàn)。
本發(fā)明的這些方面或其他方面在以下實(shí)施例的描述中會更加簡明易懂。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出了根據(jù)本發(fā)明一個實(shí)施例的顯示應(yīng)用程序下載安裝狀態(tài)方法的流程圖。
圖2是利用本發(fā)明的方法顯示應(yīng)用程序下載安裝狀態(tài)的裝置的框圖。
圖3示出了本發(fā)明顯示應(yīng)用程序下載安裝狀態(tài)的裝置中顯示模塊的具體框圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。
在本發(fā)明的說明書和權(quán)利要求書及上述附圖中的描述的一些流程中,包含了按照特定順序出現(xiàn)的多個操作,但是應(yīng)該清楚了解,這些操作可以不按照其在本文中出現(xiàn)的順序來執(zhí)行或并行執(zhí)行,操作的序號如101、102等,僅僅是用于區(qū)分開各個不同的操作,序號本身不代表任何的執(zhí)行順序。另外,這些流程可以包括更多或更少的操作,并且這些操作可以按順序執(zhí)行或并行執(zhí)行。需要說明的是,本文中的“第一”、“第二”等描述,是用于區(qū)分不同的消息、設(shè)備、模塊等,不代表先后順序,也不限定“第一”和“第二”是不同的類型。
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
對于本發(fā)明中用到的專有名詞解釋如下:
執(zhí)行函數(shù):本發(fā)明中的執(zhí)行函數(shù)指在自定義的內(nèi)容提供者類當(dāng)中定義的用以執(zhí)行桌面和應(yīng)用商店接收的對下載安裝狀態(tài)指示圖標(biāo)的修改指令;
Android系統(tǒng):一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機(jī)和平板電腦;
ContentProvider:Andriod系統(tǒng)中跨應(yīng)用數(shù)據(jù)共享的方式之一;
包名:在Android系統(tǒng)中應(yīng)用程序的唯一標(biāo)識;
進(jìn)程(Process):計(jì)算機(jī)中的程序關(guān)于某數(shù)據(jù)集合上的一次運(yùn)行活動,是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位,是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ);
字段:在數(shù)據(jù)庫中,表的“列”稱為“字段”,每個字段包含某一專題的信息;
回調(diào):Android系統(tǒng)中的一種調(diào)用方式。
第一方面,在本發(fā)明中的一個實(shí)施例中,提供了一種顯示應(yīng)用程序下載安裝狀態(tài)的方法流程圖如圖1所示,包括:
S110:在應(yīng)用商店和桌面顯示用于指示該應(yīng)用程序的下載安裝狀態(tài)的指示圖標(biāo);
具體地,所述在應(yīng)用商店和桌面顯示用于指示該應(yīng)用程序的安裝狀態(tài)的指示圖標(biāo)的步驟中,具體包括:
應(yīng)用商店進(jìn)程接收用戶指令下載安裝指定的應(yīng)用程序;
應(yīng)用商店進(jìn)程創(chuàng)建指示該應(yīng)用程序的下載安裝狀態(tài)的指示圖標(biāo)并發(fā)送指定應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱至桌面;
桌面進(jìn)程創(chuàng)建并顯示應(yīng)用程序的指示圖標(biāo)在桌面上。
本領(lǐng)域技術(shù)人員可以理解,在操作系統(tǒng)中,進(jìn)程一般指一個執(zhí)行單元。在Android系統(tǒng)上,一個應(yīng)用可以看成一個進(jìn)程。默認(rèn)情況下,當(dāng)啟動一個應(yīng)用時,應(yīng)用上所有的組件都運(yùn)行在同一進(jìn)程上。
具體地,應(yīng)用商店進(jìn)程創(chuàng)建該指示圖標(biāo)的同時在該指示圖標(biāo)中顯示等待中以標(biāo)示該應(yīng)用程序處于等待下載狀態(tài)。本領(lǐng)域技術(shù)人員可以理解,應(yīng)用商店中的指示圖標(biāo)可顯示為狀態(tài)框,該狀態(tài)框中可根據(jù)安裝狀態(tài)的不同顯示進(jìn)度條或文字狀態(tài)信息,如:當(dāng)應(yīng)用程序處于暫停下載狀態(tài)時,在該狀態(tài)框中可顯示文字“繼續(xù)下載”,一方面告知用戶應(yīng)用程序此時為暫停下載狀態(tài),另一方面,可告知用戶點(diǎn)擊該“繼續(xù)下載”狀態(tài)框可觸發(fā)應(yīng)用程序繼續(xù)下載。
具體地,應(yīng)用商店通過call方法回調(diào)桌面的創(chuàng)建下載變量,將應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱反饋至桌面。
具體地,所述應(yīng)用商店與所述桌面通過預(yù)置于Android系統(tǒng)的內(nèi)容提供者類中的call方法進(jìn)行通信。
本發(fā)明中,應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱通過附加在bundle中傳遞給桌面,所述bundle類為Android系統(tǒng)中用于攜帶數(shù)據(jù)的類。同理,當(dāng)應(yīng)用程序進(jìn)入下載時,應(yīng)用商店也通過bundle將應(yīng)用程序的下載進(jìn)度傳送給桌面。更進(jìn)一步地,應(yīng)用商店進(jìn)程將需要傳遞到桌面的數(shù)據(jù)附加在bundle中,由bundle傳遞到桌面。
具體地,所述內(nèi)容提供者類為根據(jù)數(shù)據(jù)共享規(guī)則自定義的ContentProvider類,用以實(shí)現(xiàn)應(yīng)用商店與桌面的跨應(yīng)用數(shù)據(jù)共享。
ContentProvider提供了一種通用接口機(jī)制可以方便地實(shí)現(xiàn)不同應(yīng)用程序間的數(shù)據(jù)共享。ContentProvider通常使用表的形式來組織數(shù)據(jù),每個ContentProvider都對外提供一個公共的URI。實(shí)現(xiàn)ContentProvider的具體過程如下:
1)定義一個CONTENT URI變量;
2)定義一個類繼承ContentProvider;
3)通過ContentProvider中的query(),insert(),update(),delete(),getType()和onCreate()方法實(shí)現(xiàn)對數(shù)據(jù)的各項(xiàng)操作;
4)在AndroidManifest.xml中添加聲明注冊新的ContentProvider。
對ContentProvider內(nèi)容的操作是通過Content-Resolver類來實(shí)現(xiàn)的,通過Context的getContentRe-solver()方法得到一個ContentResolver類,根據(jù)指定的URI即可訪問對應(yīng)ContentProvider。嚴(yán)格意義上講,ContentProvider是對數(shù)據(jù)庫進(jìn)行了一層封裝,最終還是以.db文件存儲于終端上。訪問方式與數(shù)據(jù)庫的訪問基本相似,基本具備了數(shù)據(jù)庫存儲方式的優(yōu)缺點(diǎn)。而它與數(shù)據(jù)庫的不同之處就是,他對數(shù)據(jù)庫進(jìn)行封裝以后可以實(shí)現(xiàn)數(shù)據(jù)在各個應(yīng)用程序之問的共享,這也是它最大的優(yōu)點(diǎn)。例如Android系統(tǒng)中的音頻、視頻、通訊錄等,都是采用這種方式存儲的。
在Android系統(tǒng)中提供了四種跨進(jìn)程通信的方式,分別對應(yīng)Android的四種應(yīng)用程序組件:Activity、ContentProvider、Broadcast和Service。其中,ContentProvider用以跨進(jìn)程訪問其他應(yīng)用程序中的數(shù)據(jù)。在Android 3.0的系統(tǒng)中,ContentProvider加入了一個新的方法,即上述call方法,可以用來進(jìn)行跨進(jìn)程的方法調(diào)用,ContentProvide中這個方法的具體定義如下:Bundle call(Uri uri,String method,String arg,Bundle extras)。
其中,每個ContentProvider都對外提供一個公共的URI,URI包含了兩方面的信息,第一方面表示需要操作的ContentProvider,第二方面表示該ContentProvider中的需要操作的數(shù)據(jù)。本發(fā)明中,分別定義了對應(yīng)應(yīng)用商店和桌面的URI協(xié)議,如下所示:
public static final String ASSISIT_PROVIDE_URL
="content://com.qihoo.appstore.LauncherDownloadProvider";//應(yīng)用商店
provider URL
public static final String LAUNCHER_PROVIDE_URL
="content://com.qiku.android.Launcher3.DownLoadProvider";//Launcherprovider URL
本領(lǐng)域技術(shù)人員可以理解,URL是一種具體的URI,它不僅唯一標(biāo)識資源,而且還提供了定位該資源的信息,可以用以描述包括文件、服務(wù)器的地址和目錄等信息資源。
根據(jù)該URI便可對應(yīng)用商店和桌面對應(yīng)的ContentProvider中的數(shù)據(jù)進(jìn)行操作。當(dāng)需要對應(yīng)用商店中的ContentProvider的數(shù)據(jù)進(jìn)行操作時,則調(diào)用應(yīng)用商店的URI,當(dāng)需要對桌面中的ContentProvider的數(shù)據(jù)進(jìn)行操作時,則調(diào)用桌面的URI。
應(yīng)用商店與桌面之間都具有各自的ContentProvider,當(dāng)要實(shí)現(xiàn)應(yīng)用商店與桌面之間的數(shù)據(jù)通信時,應(yīng)用商店通過調(diào)用桌面的URI從而調(diào)用桌面的對應(yīng)的方法以響應(yīng)執(zhí)行相應(yīng)的操作,同理,桌面也可通過調(diào)用應(yīng)用商店的URI進(jìn)而調(diào)用應(yīng)用商店的對應(yīng)的方法以響應(yīng)執(zhí)行相應(yīng)的操作,最終使所述應(yīng)用商店和桌面能同步的響應(yīng)該修改指令。
以下提供一個下載器App與桌面之間進(jìn)行交互的示例供本領(lǐng)域技術(shù)人員參照理解本發(fā)明,但不應(yīng)理解為對本發(fā)明的實(shí)現(xiàn)的限制。本示例只提供ContentProvider中call方法的具體實(shí)現(xiàn)部分,其余部分省略,但本領(lǐng)域技術(shù)人員可以理解。
首先,下載器App的ContentProvider中對應(yīng)上述call方法的實(shí)現(xiàn)為:
同時,必須調(diào)用對方的URI:
private final Uri LAUNCHERCONTENTPROVIDER_URI
=Uri.parse("content://cn.hiroz.launcher.LauncherContentProvider");
其次,桌面的ContentProvider中對應(yīng)上述call方法的實(shí)現(xiàn)為:
同時,還必須調(diào)用對方的URI:
private final Uri DOWNLOADERCONTENTPROVIDER_URI
=Uri.parse("content://cn.hiroz.downloader.DownloaderContentProvider");
由此,桌面就可以通過LauncherContentProvider的“download”方法和“pause”方法來調(diào)用下載器App的功能,從而實(shí)現(xiàn)下載器App與桌面的交互。
本發(fā)明中對Method的定義有如下:
public static final String FLAG_DOWNLOAD_CREATE
="FLAG_DOWNLOAD_CREATE";//創(chuàng)建下載標(biāo)志
public static final String FLAG_DOWNLOAD_ING
="FLAG_DOWNLOAD_ING";//開始下載標(biāo)志
public static final String FLAG_DOWNLOAD_PAUSE
="FLAG_DOWNLOAD_PAUSE";//暫停下載標(biāo)志
public static final String FLAG_INSTALL_ING="FLAG_INSTALL_ING";//安裝標(biāo)志
public static final String FLAG_DOWNLOAD_FAIL
="FLAG_DOWNLOAD_FAIL";//下載失敗標(biāo)志
public static final String FLAG_INSTALL_FAIL
="FLAG_INSTALL_FAIL";//安裝失敗標(biāo)志
public static final String FLAG_DOWNLOAD_DELETE
="FLAG_DOWNLOAD_DELETE";//刪除任務(wù)標(biāo)志
public static final String FLAG_DOWNLOAD_RESUME
="FLAG_DOWNLOAD_RESUME";//繼續(xù)下載標(biāo)志
public static final String FLAG_INSTALL_RESUME
="FLAG_INSTALL_RESUME";//繼續(xù)安裝標(biāo)志
public static final String FLAG_GET_SATTE
="FLAG_INSTALL_RESUME";//獲取下載安裝狀態(tài)
同理,根據(jù)以上所定義的Method方法,應(yīng)用商店與桌面可通過ContentProvider中的call方法調(diào)用任意一個以上所示的Method方法來回調(diào)對方中的相應(yīng)的方法以實(shí)現(xiàn)應(yīng)用商店與桌面之間的交互。
具體地,在應(yīng)用程序的原圖標(biāo)上添加蒙版以作為指示圖標(biāo),并在圖標(biāo)的下方顯示名稱為等待下載以標(biāo)示該應(yīng)用程序處于等待下載狀態(tài)。所述蒙版覆蓋圖標(biāo)的區(qū)域可用于告知用戶當(dāng)前應(yīng)用程序的下載進(jìn)度,同時,可在該指示圖標(biāo)的下方以文字的形式顯示當(dāng)前應(yīng)用程序的安裝狀態(tài)。
本領(lǐng)域技術(shù)人員可以理解,應(yīng)用商店進(jìn)程與桌面進(jìn)程都可設(shè)有顯示應(yīng)用程序安裝狀態(tài)的指示圖標(biāo),但是應(yīng)用商店的指示圖標(biāo)與桌面的指示圖標(biāo)可根據(jù)其界面布局設(shè)置而不一致,本發(fā)明中對指示圖標(biāo)不做具體形式限制,只要能實(shí)現(xiàn)在應(yīng)用商店與桌面都可查看到應(yīng)用程序的下載安裝狀態(tài)即可。
具體地,所述桌面進(jìn)程創(chuàng)建并顯示應(yīng)用程序的指示圖標(biāo)的同時將該應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱存儲在桌面的數(shù)據(jù)庫中。本領(lǐng)域技術(shù)人員可以理解,將應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱存儲在桌面數(shù)據(jù)庫中以便智能終端啟動桌面時加載應(yīng)用程序的圖標(biāo)和應(yīng)用名稱等信息。
如上所述,應(yīng)用商店與桌面創(chuàng)建應(yīng)用程序指示圖標(biāo)的具體過程為:當(dāng)應(yīng)用商店進(jìn)程接收到用戶指令安裝指定的應(yīng)用程序時,應(yīng)用商店通過ContentProvider中的call方法回調(diào)桌面的FLAG_DOWNLOAD_CREATE方法并將應(yīng)用程序的包名、圖標(biāo)以及應(yīng)用程序名稱附加到bundle中傳遞給桌面,由此實(shí)現(xiàn)應(yīng)用商店與桌面同步創(chuàng)建應(yīng)用程序指示圖標(biāo)的功能。
S120:接收針對應(yīng)用商店與桌面中其中一方的所述指示圖標(biāo)而產(chǎn)生的下載安裝狀態(tài)修改指令;
本領(lǐng)域技術(shù)人員可以理解,用戶觸發(fā)應(yīng)用程序下載之后,系統(tǒng)可實(shí)時監(jiān)測對應(yīng)用程序安裝狀態(tài)的修改指令,并自行判斷該修改指令為針對應(yīng)用商店的指示圖標(biāo)或針對桌面的指示圖標(biāo)。
具體地,所述下載安裝包括應(yīng)用程序的下載任務(wù)和安裝任務(wù)。
具體地,所述下載安裝狀態(tài)包括所述下載任務(wù)中的等待下載、正在下載、暫停下載、繼續(xù)下載、刪除應(yīng)用程序、下載完成、下載失敗和重新下載中其中一項(xiàng),還包括安裝任務(wù)中的開始安裝、安裝失敗、重新安裝和安裝完成中其中一項(xiàng)。
S130:根據(jù)該下載安裝狀態(tài)修改指令,應(yīng)用商店與桌面中,接收該指令的一方執(zhí)行針對自身顯示的指示圖標(biāo)的修改,并且,回調(diào)另一方對應(yīng)的執(zhí)行函數(shù)以完成在該另一方所顯示的指示圖標(biāo)的修改,以使修改后的指示圖標(biāo)所指示的下載安裝狀態(tài)相對修改前發(fā)生改變。
具體地,通過根據(jù)應(yīng)用程序下載安裝狀態(tài)修改指令所自定義的執(zhí)行函數(shù)進(jìn)行對應(yīng)修改。在Android系統(tǒng)中,所述函數(shù)又稱方法,所述函數(shù)為上述自定義的Method方法。
具體地,根據(jù)下載安裝狀態(tài)的修改指令,修改后的指示圖標(biāo)的變化如下:
當(dāng)應(yīng)用程序處于等待下載狀態(tài),接收到開始下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示下載進(jìn)度條,桌面進(jìn)程的指示圖標(biāo)上的蒙版的覆蓋區(qū)域由下往上褪去,褪去蒙版的圖標(biāo)區(qū)域占整個圖標(biāo)區(qū)域的比值為當(dāng)前應(yīng)用程序下載的進(jìn)度百分比,指示圖標(biāo)下方名稱顯示為下載中;
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到暫停下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為繼續(xù)下載,桌面進(jìn)程的指示圖標(biāo)上蒙版暫停在當(dāng)前下載的進(jìn)度,指示圖標(biāo)下方名稱顯示為暫停下載;
當(dāng)應(yīng)用程序處于暫停下載狀態(tài),接收到繼續(xù)下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為下載進(jìn)度條,桌面進(jìn)程的指示圖標(biāo)上的蒙版以當(dāng)前位置繼續(xù)褪去,指示圖標(biāo)下方名稱顯示為下載中;
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到刪除應(yīng)用程序的修改指令時,應(yīng)用商店進(jìn)程刪除該指示圖標(biāo),桌面進(jìn)程刪除該指示圖標(biāo);
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到下載失敗狀態(tài)的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為下載失敗,桌面進(jìn)程的指示圖標(biāo)下方的名稱顯示為下載失??;
當(dāng)應(yīng)用程序處于下載失敗狀態(tài),接收到的重新下載的修改指令時,應(yīng)用商店進(jìn)程與桌面進(jìn)程指示圖標(biāo)恢復(fù)至正在下載狀態(tài);
當(dāng)應(yīng)用程序處于下載成功狀態(tài),接收到開始安裝的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝中,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為安裝中;
當(dāng)應(yīng)用程序處于安裝中狀態(tài),接收到安裝失敗的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝失敗,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為安裝失??;
當(dāng)應(yīng)用程序處于安裝失敗狀態(tài),接收到重新安裝的修改指令時,用于商店進(jìn)程與桌面進(jìn)程的指示圖標(biāo)恢復(fù)至正在安裝狀態(tài)。
當(dāng)應(yīng)用程序處于正在安裝中狀態(tài),接收到安裝成功的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝完成,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為應(yīng)用程序的名稱。
以下對每個執(zhí)行函數(shù)及其對應(yīng)的對指示圖標(biāo)的修改進(jìn)行說明:
當(dāng)用戶觸發(fā)應(yīng)用商店中的應(yīng)用程序下載,此時,應(yīng)用程序進(jìn)程創(chuàng)建本進(jìn)程內(nèi)的應(yīng)用程序安裝狀態(tài)的指示圖標(biāo),并通過ContentProvider中的call方法回調(diào)桌面的FLAG_DOWNLOAD_CREATE字符串變量,將該指令傳達(dá)到桌面進(jìn)程,并將應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱附加在Bundle中傳遞給桌面,此時桌面進(jìn)程便創(chuàng)建一個該應(yīng)用程序的指示圖標(biāo),且該指示圖標(biāo)由原圖標(biāo)及其上的一層蒙版構(gòu)成,指示圖標(biāo)下方的名稱顯示為等待下載。
當(dāng)應(yīng)用程序進(jìn)入下載時,應(yīng)用商店進(jìn)程在指示圖標(biāo)上顯示下載進(jìn)度條,同時通過ContentProvider中的call方法回調(diào)桌面的FLAG_DOWNLOAD_ING字符串變量并將當(dāng)前下載進(jìn)度通過bundle傳遞給桌面,此時,桌面根據(jù)當(dāng)前的進(jìn)度計(jì)算出蒙版覆蓋的范圍,每計(jì)算出一個新的覆蓋范圍都重新繪制一次在該應(yīng)用程序的原圖標(biāo)上構(gòu)成新的指示圖標(biāo),隨著下載進(jìn)度的持續(xù)增加,蒙版由下往上逐步褪去,且指示圖標(biāo)下方的名稱顯示為下載中。
當(dāng)用戶在應(yīng)用商店中觸發(fā)應(yīng)用程序暫停下載,應(yīng)用商店進(jìn)程暫停下載任務(wù),并將指示圖標(biāo)顯示為繼續(xù)下載,一方面告知用戶應(yīng)用程序已停止下載,另一方面告知用戶可點(diǎn)擊該指示圖標(biāo)繼續(xù)啟動下載。同時,應(yīng)用商店進(jìn)程通過ContentProvider中的call方法回調(diào)桌面的FLAG_DOWNLOAD_PAUSE字符串變量,此時桌面的指示圖標(biāo)上蒙版暫停在當(dāng)前下載的進(jìn)度,指示圖標(biāo)下方名稱顯示為暫停下載。
當(dāng)用戶在桌面中觸發(fā)應(yīng)用程序暫停下載,桌面進(jìn)程將指示圖標(biāo)中的蒙版停止在當(dāng)前下載進(jìn)度。同時,桌面進(jìn)程通過ContentProvider中的call方法回調(diào)應(yīng)用商店中的FLAG_DOWNLOAD_PAUSE字符串變量,此時應(yīng)用商店暫停下載任務(wù)并將指示圖標(biāo)顯示為繼續(xù)下載。
當(dāng)應(yīng)用程序處于暫停下載的狀態(tài),用戶在應(yīng)用商店或桌面上觸發(fā)繼續(xù)下載時,應(yīng)用商店進(jìn)程和桌面可調(diào)用對方的FLAG_DOWNLOAD_RESUME字符串變量,此時應(yīng)用商店進(jìn)程或桌面便會恢復(fù)下載,對應(yīng)的指示圖標(biāo)恢復(fù)到正在下載的狀態(tài)。
當(dāng)用戶在桌面中刪除該應(yīng)用程序,桌面進(jìn)程刪除該應(yīng)用程序指示圖標(biāo)并通過ContentProvider中的call方法回調(diào)應(yīng)用商店中的FLAG_DOWNLOAD_DELETE字符串變量,此時,應(yīng)用商店進(jìn)程刪除該下載任務(wù)。
當(dāng)應(yīng)用程序下載失敗時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為下載失敗,并通過ContentProvider中的call方法回調(diào)桌面中的FLAG_DOWNLOAD_FAIL字符串變量,此時,桌面指示圖標(biāo)下方的名稱顯示為下載失敗。
對于下載失敗的應(yīng)用程序,用戶可通過桌面觸發(fā)重新下載,桌面進(jìn)程通過ContentProvider中的call方法回調(diào)應(yīng)用商店中的FLAG_DOWNLOAD_RESUME字符串變量,此時,應(yīng)用商店進(jìn)程重新啟動下載任務(wù)。
當(dāng)應(yīng)用程序下載成功時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝中并通過ContentProvider中的call方法回調(diào)桌面中的FLAG_INSTALL_ING字符串變量,此時,桌面中的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為安裝中。
當(dāng)應(yīng)用程序安裝失敗時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝失敗,并通過ContentProvider中的call方法回調(diào)桌面中的FLAG_INSTALL_FAIL字符串變量,此時,桌面中應(yīng)用程序的圖標(biāo)下方的名稱顯示為安裝失敗。
對于安裝失敗的應(yīng)用程序,用戶可通過桌面觸發(fā)應(yīng)用程序重新安裝,桌面進(jìn)程通過ContentProvider中的call方法回調(diào)應(yīng)用商店中的FLAG_INSTALL_RESUME字符串變量,此時,應(yīng)用商店重新啟動安裝任務(wù)。
當(dāng)應(yīng)用程序安裝成功時,應(yīng)用商店進(jìn)程通過ContentProvider中的call方法回調(diào)桌面中的FLAG_PACKAGE_ADDED字符串變量,此時,桌面中應(yīng)用程序的圖標(biāo)下方的名稱顯示為應(yīng)用程序的名稱。
第二方面,在本發(fā)明中的一個實(shí)施例中,提供了一種顯示應(yīng)用程序下載安裝狀態(tài)的裝置,其框圖如圖2所示,包括:
顯示模塊210,在應(yīng)用商店和桌面顯示用于指示該應(yīng)用程序的下載安裝狀態(tài)的指示圖標(biāo);
具體地,所述顯示模塊210具體包括:
接收單元2101,應(yīng)用商店進(jìn)程接收用戶指令下載安裝指定的應(yīng)用程序;本領(lǐng)域技術(shù)人員可以理解,在操作系統(tǒng)中,進(jìn)程一般指一個執(zhí)行單元。在Android系統(tǒng)上,一個應(yīng)用可以看成一個進(jìn)程。默認(rèn)情況下,當(dāng)啟動一個應(yīng)用時,應(yīng)用上所有的組件都運(yùn)行在同一進(jìn)程上。
創(chuàng)建單元2102,應(yīng)用商店進(jìn)程創(chuàng)建指示該應(yīng)用程序的下載安裝狀態(tài)的指示圖標(biāo)并發(fā)送指定應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱至桌面;
具體地,應(yīng)用商店進(jìn)程創(chuàng)建該指示圖標(biāo)的同時在該指示圖標(biāo)中顯示等待中以標(biāo)示該應(yīng)用程序處于等待下載狀態(tài)。本領(lǐng)域技術(shù)人員可以理解,該狀態(tài)框中可根據(jù)安裝狀態(tài)的不同顯示進(jìn)度條或文字狀態(tài)信息,如:當(dāng)應(yīng)用程序處于暫停下載狀態(tài)時,在該狀態(tài)框中可顯示文字“繼續(xù)下載”,一方面告知用戶應(yīng)用程序此時為暫停下載狀態(tài),另一方面,可告知用戶點(diǎn)擊該“繼續(xù)下載”狀態(tài)框可觸發(fā)應(yīng)用程序繼續(xù)下載。
具體地,應(yīng)用商店通過call方法回調(diào)桌面的創(chuàng)建下載變量,將應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱反饋至桌面。
具體地,所述應(yīng)用商店與所述桌面通過預(yù)置于Android系統(tǒng)的內(nèi)容提供者類中的call方法進(jìn)行通信。
應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱通過附加在bundle中傳遞給桌面,所述bundle類為Android系統(tǒng)中用于攜帶數(shù)據(jù)的類。同理,當(dāng)應(yīng)用程序進(jìn)入下載時,應(yīng)用商店也通過bundle將應(yīng)用程序的下載進(jìn)度傳送給桌面。更進(jìn)一步地,應(yīng)用商店中將需要傳遞到桌面的數(shù)據(jù)附加在bundle中,由bundle傳遞到桌面。
具體地,所述內(nèi)容提供者類為根據(jù)數(shù)據(jù)共享規(guī)則自定義的ContentProvider類,用以實(shí)現(xiàn)應(yīng)用商店與桌面的跨應(yīng)用數(shù)據(jù)共享。
ContentProvider提供了一種通用接口機(jī)制可以方便地實(shí)現(xiàn)不同應(yīng)用程序間的數(shù)據(jù)共享。Content-Provider通常使用表的形式來組織數(shù)據(jù),每個ContentProvider都對外提供一個公共的URI。實(shí)現(xiàn)ContentProvider的具體過程如下:
1)定義一個CONTENT URI變量;
2)定義一個類繼承ContentProvider;
3)通過ContentProvider中的query(),insert(),update(),delete(),getType()和onCreate()方法實(shí)現(xiàn)對數(shù)據(jù)的各項(xiàng)操作;
4)在AndroidManifest.xml中添加聲明注冊新的ContentProvider。
對ContentProvider內(nèi)容的操作是通過Content-Resolver類來實(shí)現(xiàn)的,通過Context的getContentResolver()方法得到一個ContentResolver類,根據(jù)指定的URI即可訪問對應(yīng)ContentProvider。嚴(yán)格意義上講,ContentProvider是對數(shù)據(jù)庫進(jìn)行了一層封裝,最終還是以.db文件存儲于終端上。訪問方式與數(shù)據(jù)庫的訪問基本相似,基本具備了數(shù)據(jù)庫存儲方式的優(yōu)缺點(diǎn)。而它與數(shù)據(jù)庫的不同之處就是,他對數(shù)據(jù)庫進(jìn)行封裝以后可以實(shí)現(xiàn)數(shù)據(jù)在各個應(yīng)用程序之問的共享,這也是它最大的優(yōu)點(diǎn)。例如Android系統(tǒng)中的音頻、視頻、通訊錄等,都是采用這種方式存儲的。
在Android系統(tǒng)中提供了四種跨進(jìn)程通信的方式,分別對應(yīng)Android的四種應(yīng)用程序組件:Activity、ContentProvider、Broadcast和Service。其中,ContentProvider用以跨進(jìn)程訪問其他應(yīng)用程序中的數(shù)據(jù)。在Android 3.0的系統(tǒng)中,ContentProvider加入了一個新的方法,即上述call方法,可以用來進(jìn)行跨進(jìn)程的方法調(diào)用,ContentProvide中這個方法的具體定義如下:Bundle call(Uri uri,String method,String arg,Bundle extras)。
其中,每個ContentProvider都對外提供一個公共的URI,URI包含了兩方面的信息,第一方面表示需要操作的ContentProvider,第二方面表示該ContentProvider中的需要操作的數(shù)據(jù)。本發(fā)明中,分別定義了對應(yīng)應(yīng)用商店和桌面的URI協(xié)議,如下所示:
public static final String ASSISIT_PROVIDE_URL
="content://com.qihoo.appstore.LauncherDownloadProvider";//應(yīng)用商店
provider URL
public static final String LAUNCHER_PROVIDE_URL
="content://com.qiku.android.Launcher3.DownLoadProvider";//Launcher
provider URL
本領(lǐng)域技術(shù)人員可以理解,URL是一種具體的URI,它不僅唯一標(biāo)識資源,而且還提供了定位該資源的信息,可以用以描述包括文件、服務(wù)器的地址和目錄等信息資源。
根據(jù)該URI便可對應(yīng)用商店和桌面對應(yīng)的ContentProvider中的數(shù)據(jù)進(jìn)行操作。當(dāng)需要對應(yīng)用商店中的ContentProvider的數(shù)據(jù)進(jìn)行操作時,則調(diào)用應(yīng)用商店的URI,當(dāng)需要對桌面中的ContentProvider的數(shù)據(jù)進(jìn)行操作時,則調(diào)用桌面的URI。
應(yīng)用商店與桌面之間都具有各自的ContentProvider,當(dāng)要實(shí)現(xiàn)應(yīng)用商店與桌面之間的數(shù)據(jù)通信時,應(yīng)用商店通過調(diào)用桌面的URI調(diào)用桌面的對應(yīng)的方法以響應(yīng)執(zhí)行相應(yīng)的操作,桌面也可通過調(diào)用應(yīng)用商店的URI調(diào)用應(yīng)用商店的對應(yīng)的方法以響應(yīng)以執(zhí)行相應(yīng)的操作,最終使所述應(yīng)用商店和桌面能同步的響應(yīng)該修改指令。
以下提供一個下載器App與桌面之間進(jìn)行交互的示例供本領(lǐng)域技術(shù)人員參照理解本發(fā)明,但不應(yīng)理解為對本發(fā)明的實(shí)現(xiàn)的限制。本示例只提供ContentProvider中call方法的具體實(shí)現(xiàn)部分,其余部分省略,但本領(lǐng)域技術(shù)人員可以理解。
首先,下載器App的ContentProvider中對應(yīng)上述call方法的實(shí)現(xiàn)為:
同時,必須調(diào)用對方的URI:
private final Uri LAUNCHERCONTENTPROVIDER_URI
=Uri.parse("content://cn.hiroz.launcher.LauncherContentProvider");
其次,桌面的ContentProvider中對應(yīng)上述call方法的實(shí)現(xiàn)為:
同時,還必須調(diào)用對方的URI:
private final Uri DOWNLOADERCONTENTPROVIDER_URI
=Uri.parse("content://cn.hiroz.downloader.DownloaderContentProvider");
由此,桌面就可以通過LauncherContentProvider的“download”方法和“pause”方法來調(diào)用下載器App的功能,從而實(shí)現(xiàn)下載器App與桌面的交互。
本發(fā)明中對Method的定義有如下:
public static final String FLAG_DOWNLOAD_CREATE
="FLAG_DOWNLOAD_CREATE";//創(chuàng)建下載標(biāo)志
public static final String FLAG_DOWNLOAD_ING
="FLAG_DOWNLOAD_ING";//開始下載標(biāo)志
public static final String FLAG_DOWNLOAD_PAUSE
="FLAG_DOWNLOAD_PAUSE";//暫停下載標(biāo)志
public static final String FLAG_INSTALL_ING="FLAG_INSTALL_ING";//安裝標(biāo)志
public static final String FLAG_DOWNLOAD_FAIL
="FLAG_DOWNLOAD_FAIL";//下載失敗標(biāo)志
public static final String FLAG_INSTALL_FAIL
="FLAG_INSTALL_FAIL";//安裝失敗標(biāo)志
public static final String FLAG_DOWNLOAD_DELETE
="FLAG_DOWNLOAD_DELETE";//刪除任務(wù)標(biāo)志
public static final String FLAG_DOWNLOAD_RESUME
="FLAG_DOWNLOAD_RESUME";//繼續(xù)下載標(biāo)志
public static final String FLAG_INSTALL_RESUME
="FLAG_INSTALL_RESUME";//繼續(xù)安裝標(biāo)志
public static final String FLAG_GET_SATTE
="FLAG_INSTALL_RESUME";//獲取下載安裝狀態(tài)
同理,根據(jù)以上所定義的Method方法,應(yīng)用商店進(jìn)程與桌面進(jìn)程可通過ContentProvider中的call方法調(diào)用任意一個以上所示的Method方法來回調(diào)對方的對應(yīng)的方法以實(shí)現(xiàn)應(yīng)用商店與桌面之間的交互。
顯示單元2013,桌面進(jìn)程創(chuàng)建并顯示應(yīng)用程序的指示圖標(biāo)在桌面上。
具體地,在應(yīng)用程序的原圖標(biāo)上添加蒙版以作為指示圖標(biāo),并在圖標(biāo)的下方顯示名稱為等待下載以標(biāo)示該應(yīng)用程序處于等待下載狀態(tài)。所述蒙版覆蓋圖標(biāo)的區(qū)域可用于告知用戶當(dāng)前應(yīng)用程序的下載進(jìn)度,同時,可在該指示圖標(biāo)的下方以文字的形式顯示當(dāng)前應(yīng)用程序的安裝狀態(tài)。
本領(lǐng)域技術(shù)人員可以理解,應(yīng)用商店進(jìn)程與桌面進(jìn)程都可設(shè)有顯示應(yīng)用程序安裝狀態(tài)的指示圖標(biāo),但是應(yīng)用商店的指示圖標(biāo)與桌面的指示圖標(biāo)可根據(jù)其界面布局設(shè)置而不一致,本發(fā)明中對指示圖標(biāo)不做具體形式限制,只要能實(shí)現(xiàn)在應(yīng)用商店與桌面都可查看到應(yīng)用程序的安裝狀態(tài)即可。
具體地,所述桌面進(jìn)程創(chuàng)建并顯示應(yīng)用程序的指示圖標(biāo)的同時將該應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱存儲在桌面的數(shù)據(jù)庫中。本領(lǐng)域技術(shù)人員可以理解,將應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱存儲在桌面數(shù)據(jù)庫中以便終端桌面啟動時加載應(yīng)用程序的圖標(biāo)和應(yīng)用名稱等信息。
如上所述,應(yīng)用商店與桌面創(chuàng)建應(yīng)用程序指示圖標(biāo)的具體過程為:當(dāng)應(yīng)用商店進(jìn)程接收到用戶指令安裝指定的應(yīng)用程序時,應(yīng)用商店通過ContentProvider中的call方法回調(diào)桌面的FLAG_DOWNLOAD_CREATE方法并將應(yīng)用程序的包名、圖標(biāo)以及應(yīng)用程序名稱附加到bundle中傳遞給桌面,由此實(shí)現(xiàn)應(yīng)用商店與桌面同步創(chuàng)建應(yīng)用程序指示圖標(biāo)的功能。
接收模塊220,接收針對應(yīng)用商店與桌面中其中一方的所述指示圖標(biāo)而產(chǎn)生的下載安裝狀態(tài)修改指令;
本領(lǐng)域技術(shù)人員可以理解,用戶觸發(fā)應(yīng)用程序下載之后,系統(tǒng)可實(shí)時監(jiān)測對應(yīng)用程序下載安裝狀態(tài)的修改指令,并自行判斷該修改指令為針對應(yīng)用商店的指示圖標(biāo)或針對桌面的指示圖標(biāo)。
具體地,所述下載安裝包括應(yīng)用程序的下載任務(wù)和安裝任務(wù)。
具體地,所述下載安裝狀態(tài)包括所述下載任務(wù)中的等待下載、正在下載、暫停下載、繼續(xù)下載、刪除應(yīng)用程序下載完成中其中一項(xiàng),還包括安裝任務(wù)中的開始安裝、安裝失敗和安裝完成中其中一項(xiàng)。
執(zhí)行模塊230,根據(jù)該下載安裝狀態(tài)修改指令,應(yīng)用商店與桌面中,接收該指令的一方執(zhí)行針對自身顯示的指示圖標(biāo)的修改,并且,回調(diào)另一方對應(yīng)的執(zhí)行函數(shù)以完成在該另一方所顯示的指示圖標(biāo)的修改,以使修改后的指示圖標(biāo)所指示的下載安裝狀態(tài)相對修改前發(fā)生改變。
具體地,通過根據(jù)應(yīng)用程序下載安裝狀態(tài)修改指令所自定義的執(zhí)行函數(shù)進(jìn)行對應(yīng)修改。在Android系統(tǒng)中,所述函數(shù)又稱方法,所述函數(shù)為上述自定義的Method方法。
具體地,根據(jù)下載安裝狀態(tài)的修改指令,修改后的指示圖標(biāo)的變化如下:
當(dāng)應(yīng)用程序處于等待下載狀態(tài),接收到開始下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示下載進(jìn)度條,桌面進(jìn)程的指示圖標(biāo)上的蒙版的覆蓋區(qū)域由下往上褪去,褪去蒙版的圖標(biāo)區(qū)域占整個圖標(biāo)區(qū)域的比值為當(dāng)前應(yīng)用程序下載的進(jìn)度百分比,指示圖標(biāo)下方名稱顯示為下載中;
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到暫停下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為繼續(xù)下載,桌面進(jìn)程的指示圖標(biāo)上蒙版暫停在當(dāng)前下載的進(jìn)度,指示圖標(biāo)下方名稱顯示為暫停下載;
當(dāng)應(yīng)用程序處于暫停下載狀態(tài),接收到繼續(xù)下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為下載進(jìn)度條,桌面進(jìn)程的指示圖標(biāo)上的蒙版以當(dāng)前位置繼續(xù)褪去,指示圖標(biāo)下方名稱顯示為下載中;
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到刪除應(yīng)用程序的修改指令時,應(yīng)用商店進(jìn)程刪除該指示圖標(biāo),桌面進(jìn)程刪除該指示圖標(biāo);
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到下載失敗狀態(tài)的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為下載失敗,桌面進(jìn)程的指示圖標(biāo)下方的名稱顯示為下載失??;
當(dāng)應(yīng)用程序處于下載失敗狀態(tài),接收到的重新下載的修改指令時,應(yīng)用商店進(jìn)程與桌面進(jìn)程指示圖標(biāo)恢復(fù)至正在下載狀態(tài);
當(dāng)應(yīng)用程序處于下載成功狀態(tài),接收到開始安裝的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝中,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為安裝中;
當(dāng)應(yīng)用程序處于安裝中狀態(tài),接收到安裝失敗的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝失敗,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為安裝失敗;
當(dāng)應(yīng)用程序處于安裝失敗狀態(tài),接收到重新安裝的修改指令時,用于商店進(jìn)程與桌面進(jìn)程的指示圖標(biāo)恢復(fù)至正在安裝狀態(tài)。
當(dāng)應(yīng)用程序處于正在安裝中狀態(tài),接收到安裝成功的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝完成,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為應(yīng)用程序的名稱。
以下對每個執(zhí)行函數(shù)及其對應(yīng)的對指示圖標(biāo)的修改進(jìn)行說明:
當(dāng)用戶觸發(fā)應(yīng)用商店中的應(yīng)用程序下載,此時,應(yīng)用程序進(jìn)程創(chuàng)建本進(jìn)程內(nèi)的應(yīng)用程序安裝狀態(tài)的指示圖標(biāo),并通過ContentProvider中的call方法回調(diào)桌面的FLAG_DOWNLOAD_CREATE字符串變量,將該指令傳達(dá)到桌面進(jìn)程,并將應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱附加在Bundle中傳遞給桌面,此時桌面進(jìn)程便創(chuàng)建一個該應(yīng)用程序的指示圖標(biāo),且該指示圖標(biāo)由原圖標(biāo)及其上的一層蒙版構(gòu)成,指示圖標(biāo)下方的名稱顯示為等待下載。
當(dāng)應(yīng)用程序進(jìn)入下載時,應(yīng)用商店進(jìn)程在指示圖標(biāo)上顯示下載進(jìn)度條,同時通過ContentProvider中的call方法回調(diào)桌面的FLAG_DOWNLOAD_ING字符串變量并將當(dāng)前下載進(jìn)度通過bundle傳遞給桌面,此時,桌面根據(jù)當(dāng)前的進(jìn)度計(jì)算出蒙版覆蓋的范圍,每計(jì)算出一個新的覆蓋范圍都重新繪制一次在該應(yīng)用程序的原圖標(biāo)上構(gòu)成新的指示圖標(biāo),隨著下載進(jìn)度的持續(xù)增加,蒙版由下往上逐步褪去,且指示圖標(biāo)下方的名稱顯示為下載中。
當(dāng)用戶在應(yīng)用商店中觸發(fā)應(yīng)用程序暫停下載,應(yīng)用商店進(jìn)程暫停下載任務(wù),并將指示圖標(biāo)顯示為繼續(xù)下載,一方面告知用戶應(yīng)用程序已停止下載,另一方面告知用戶可點(diǎn)擊該指示圖標(biāo)繼續(xù)啟動下載。同時,應(yīng)用商店進(jìn)程通過ContentProvider中的call方法回調(diào)桌面的FLAG_DOWNLOAD_PAUSE字符串變量,此時桌面的指示圖標(biāo)上蒙版暫停在當(dāng)前下載的進(jìn)度,指示圖標(biāo)下方名稱顯示為暫停下載。
當(dāng)用戶在桌面中觸發(fā)應(yīng)用程序暫停下載,桌面進(jìn)程將指示圖標(biāo)中的蒙版停止在當(dāng)前下載進(jìn)度。同時,桌面進(jìn)程通過ContentProvider中的call方法回調(diào)應(yīng)用商店中的FLAG_DOWNLOAD_PAUSE字符串變量,此時應(yīng)用商店暫停下載任務(wù)并將指示圖標(biāo)顯示為繼續(xù)下載。
當(dāng)應(yīng)用程序處于暫停下載的狀態(tài),用戶在應(yīng)用商店或桌面上觸發(fā)繼續(xù)下載時,應(yīng)用商店進(jìn)程和桌面可調(diào)用對方的FLAG_DOWNLOAD_RESUME字符串變量,此時應(yīng)用商店進(jìn)程或桌面便會恢復(fù)下載,對應(yīng)的指示圖標(biāo)恢復(fù)到正在下載的狀態(tài)。
當(dāng)用戶在桌面中刪除該應(yīng)用程序,桌面進(jìn)程刪除該應(yīng)用程序指示圖標(biāo)并通過ContentProvider中的call方法回調(diào)應(yīng)用商店中的FLAG_DOWNLOAD_DELETE字符串變量,此時,應(yīng)用商店進(jìn)程刪除該下載任務(wù)。
當(dāng)應(yīng)用程序下載失敗時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為下載失敗,并通過ContentProvider中的call方法回調(diào)桌面中的FLAG_DOWNLOAD_FAIL字符串變量,此時,桌面指示圖標(biāo)下方的名稱顯示為下載失敗。
對于下載失敗的應(yīng)用程序,用戶可通過桌面觸發(fā)重新下載,桌面進(jìn)程通過ContentProvider中的call方法回調(diào)應(yīng)用商店中的FLAG_DOWNLOAD_RESUME字符串變量,此時,應(yīng)用商店進(jìn)程重新啟動下載任務(wù)。
當(dāng)應(yīng)用程序下載成功時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝中并通過ContentProvider中的call方法回調(diào)桌面中的FLAG_INSTALL_ING字符串變量,此時,桌面中的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為安裝中。
當(dāng)應(yīng)用程序安裝失敗時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝失敗,并通過ContentProvider中的call方法回調(diào)桌面中的FLAG_INSTALL_FAIL字符串變量,此時,桌面中應(yīng)用程序的圖標(biāo)下方的名稱顯示為安裝失敗。
對于安裝失敗的應(yīng)用程序,用戶可通過桌面觸發(fā)應(yīng)用程序重新安裝,桌面進(jìn)程通過ContentProvider中的call方法回調(diào)應(yīng)用商店中的FLAG_INSTALL_RESUME字符串變量,此時,應(yīng)用商店重新啟動安裝任務(wù)。
當(dāng)應(yīng)用程序安裝成功時,應(yīng)用商店進(jìn)程通過ContentProvider中的call方法回調(diào)桌面中的FLAG_PACKAGE_ADDED字符串變量,此時,桌面中應(yīng)用程序的圖標(biāo)下方的名稱顯示為應(yīng)用程序的名稱。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請中所述操作中的一項(xiàng)或多項(xiàng)的設(shè)備。這些設(shè)備可以為所需的目的而專門設(shè)計(jì)和制造,或者也可以包括通用計(jì)算機(jī)中的已知設(shè)備。這些設(shè)備具有存儲在其內(nèi)的計(jì)算機(jī)程序,這些計(jì)算機(jī)程序選擇性地激活或重構(gòu)。這樣的計(jì)算機(jī)程序可以被存儲在設(shè)備(例如,計(jì)算機(jī))可讀介質(zhì)中或者存儲在適于存儲電子指令并分別耦聯(lián)到總線的任何類型的介質(zhì)中,所述計(jì)算機(jī)可讀介質(zhì)包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、CD-ROM、和磁光盤)、ROM(Read-Only Memory,只讀存儲器)、RAM(Random Access Memory,隨即存儲器)、EPROM(Erasable Programmable Read-Only Memory,可擦寫可編程只讀存儲器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲器)、閃存、磁性卡片或光線卡片。也就是,可讀介質(zhì)包括由設(shè)備(例如,計(jì)算機(jī))以能夠讀的形式存儲或傳輸信息的任何介質(zhì)。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以用計(jì)算機(jī)程序指令來實(shí)現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以將這些計(jì)算機(jī)程序指令提供給通用計(jì)算機(jī)、專業(yè)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理方法的處理器來實(shí)現(xiàn),從而通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理方法的處理器來執(zhí)行本發(fā)明公開的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個框中指定的方案。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進(jìn)一步地,具有本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進(jìn)一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
概括而言,本發(fā)明提供的技術(shù)方案概述如下:
A1、一種顯示應(yīng)用程序下載安裝狀態(tài)的方法,包括:
在應(yīng)用商店和桌面顯示用于指示該應(yīng)用程序的下載安裝狀態(tài)的指示圖標(biāo);
接收針對應(yīng)用商店與桌面中其中一方的所述指示圖標(biāo)而產(chǎn)生的下載安裝狀態(tài)修改指令;
根據(jù)該下載安裝狀態(tài)修改指令,應(yīng)用商店與桌面中,接收該指令的一方執(zhí)行針對自身顯示的指示圖標(biāo)的修改,并且,回調(diào)另一方對應(yīng)的執(zhí)行函數(shù)以完成在該另一方所顯示的指示圖標(biāo)的修改,以使修改后的指示圖標(biāo)所指示的下載安裝狀態(tài)相對修改前發(fā)生改變。
A2、根據(jù)權(quán)利要求A1所述的方法,所述在應(yīng)用商店和桌面顯示用于指示該應(yīng)用程序的下載安裝狀態(tài)的指示圖標(biāo)的步驟中,具體包括:
應(yīng)用商店進(jìn)程接收用戶指令下載安裝指定的應(yīng)用程序;
應(yīng)用商店進(jìn)程創(chuàng)建指示該應(yīng)用程序的下載安裝狀態(tài)的指示圖標(biāo)并發(fā)送指定應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱至桌面;
桌面進(jìn)程創(chuàng)建并顯示應(yīng)用程序的指示圖標(biāo)在桌面上。
A3、根據(jù)權(quán)利要求A2所述的方法,應(yīng)用商店進(jìn)程創(chuàng)建該指示圖標(biāo)的同時在該指示圖標(biāo)中顯示等待中以標(biāo)示該應(yīng)用程序處于等待下載狀態(tài)。
A4、根據(jù)權(quán)利要求A2所述的方法,應(yīng)用商店通過call方法回調(diào)桌面的創(chuàng)建下載變量,將應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱反饋至桌面。
A5、根據(jù)權(quán)利要求A2所述的方法,所述應(yīng)用商店與所述桌面通過預(yù)置于Android系統(tǒng)的內(nèi)容提供者類中的call方法進(jìn)行通信。
A6、根據(jù)權(quán)利要求A5所述的方法,所述內(nèi)容提供者類為根據(jù)數(shù)據(jù)共享規(guī)則自定義的ContentProvider類,用以實(shí)現(xiàn)應(yīng)用商店與桌面的跨應(yīng)用數(shù)據(jù)共享。
A7、根據(jù)權(quán)利要求A2所述的方法,在應(yīng)用程序的原圖標(biāo)上添加蒙版以作為指示圖標(biāo),并在圖標(biāo)的下方顯示名稱為等待下載以標(biāo)示該應(yīng)用程序處于等待下載狀態(tài)。
A8、根據(jù)權(quán)利要求A7所述的方法,所述桌面進(jìn)程創(chuàng)建并顯示應(yīng)用程序的指示圖標(biāo)的同時將該應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱存儲在桌面的數(shù)據(jù)庫中。
A9、根據(jù)權(quán)利要求A1所述的方法,所述下載安裝包括應(yīng)用程序的下載任務(wù)和安裝任務(wù)。
A10、根據(jù)權(quán)利要求A9所述的方法,所述下載安裝狀態(tài)包括所述下載任務(wù)中的等待下載、正在下載、暫停下載、繼續(xù)下載、刪除應(yīng)用程序、下載完成、下載失敗和重新下載中其中一項(xiàng),還包括安裝任務(wù)中的開始安裝、安裝失敗、重新安裝和安裝完成中其中一項(xiàng)。
A11、根據(jù)權(quán)利要求A1所述的方法,通過根據(jù)應(yīng)用程序下載安裝狀態(tài)修改指令所自定義的執(zhí)行函數(shù)進(jìn)行對應(yīng)修改。
A12、根據(jù)權(quán)利要求A1所述的方法,根據(jù)下載安裝狀態(tài)的修改指令,修改后的指示圖標(biāo)的變化如下:
當(dāng)應(yīng)用程序處于等待下載狀態(tài),接收到開始下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示下載進(jìn)度條,桌面進(jìn)程的指示圖標(biāo)上的蒙版的覆蓋區(qū)域由下往上褪去,褪去蒙版的圖標(biāo)區(qū)域占整個圖標(biāo)區(qū)域的比值為當(dāng)前應(yīng)用程序下載的進(jìn)度百分比,指示圖標(biāo)下方名稱顯示為下載中;
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到暫停下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為繼續(xù)下載,桌面進(jìn)程的指示圖標(biāo)上蒙版暫停在當(dāng)前下載的進(jìn)度,指示圖標(biāo)下方名稱顯示為暫停下載;
當(dāng)應(yīng)用程序處于暫停下載狀態(tài),接收到繼續(xù)下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為下載進(jìn)度條,桌面進(jìn)程的指示圖標(biāo)上的蒙版以當(dāng)前位置繼續(xù)褪去,指示圖標(biāo)下方名稱顯示為下載中;
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到刪除應(yīng)用程序的修改指令時,應(yīng)用商店進(jìn)程刪除該指示圖標(biāo),桌面進(jìn)程刪除該指示圖標(biāo);
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到下載失敗狀態(tài)的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為下載失敗,桌面進(jìn)程的指示圖標(biāo)下方的名稱顯示為下載失??;
當(dāng)應(yīng)用程序處于下載失敗狀態(tài),接收到的重新下載的修改指令時,應(yīng)用商店進(jìn)程與桌面進(jìn)程指示圖標(biāo)恢復(fù)至正在下載狀態(tài);
當(dāng)應(yīng)用程序處于下載成功狀態(tài),接收到開始安裝的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝中,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為安裝中;
當(dāng)應(yīng)用程序處于安裝中狀態(tài),接收到安裝失敗的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝失敗,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為安裝失??;
當(dāng)應(yīng)用程序處于安裝失敗狀態(tài),接收到重新安裝的修改指令時,用于商店進(jìn)程與桌面進(jìn)程的指示圖標(biāo)恢復(fù)至正在安裝狀態(tài)。
當(dāng)應(yīng)用程序處于正在安裝中狀態(tài),接收到安裝成功的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝完成,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為應(yīng)用程序的名稱。
B13、一種顯示應(yīng)用程序下載安裝狀態(tài)的裝置,其特征在于,包括:
顯示模塊,在應(yīng)用商店和桌面顯示用于指示該應(yīng)用程序的下載安裝狀態(tài)的指示圖標(biāo);
接收模塊,接收針對應(yīng)用商店與桌面中其中一方的所述指示圖標(biāo)而產(chǎn)生的下載安裝狀態(tài)修改指令;
執(zhí)行模塊,根據(jù)該下載安裝狀態(tài)修改指令,應(yīng)用商店與桌面中,接收該指令的一方執(zhí)行針對自身顯示的指示圖標(biāo)的修改,并且,回調(diào)另一方對應(yīng)的執(zhí)行函數(shù)以完成在該另一方所顯示的指示圖標(biāo)的修改,以使修改后的指示圖標(biāo)所指示的下載安裝狀態(tài)相對修改前發(fā)生改變。
B14、根據(jù)權(quán)利要求B13所述的裝置,所述顯示模塊具體包括:
接收單元,應(yīng)用商店進(jìn)程接收用戶指令下載安裝指定的應(yīng)用程序;
創(chuàng)建單元,應(yīng)用商店進(jìn)程創(chuàng)建指示該應(yīng)用程序的安裝狀態(tài)的指示圖標(biāo)并發(fā)送指定應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱至桌面;
顯示單元,桌面進(jìn)程創(chuàng)建并顯示應(yīng)用程序的指示圖標(biāo)在桌面上。
B15、根據(jù)權(quán)利要求B14所述的裝置,應(yīng)用商店進(jìn)程創(chuàng)建該指示圖標(biāo)的同時在該指示圖標(biāo)中顯示等待中以標(biāo)示該應(yīng)用程序處于等待下載狀態(tài)。
B16、根據(jù)權(quán)利要求B14所述的裝置,應(yīng)用商店通過call方法調(diào)用桌面的創(chuàng)建下載變量,將應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱反饋至桌面。
B17、根據(jù)權(quán)利要求B14所述的裝置,所述應(yīng)用商店與所述桌面通過預(yù)置于Android系統(tǒng)的內(nèi)容提供者類中的call方法進(jìn)行通信。
B18、根據(jù)權(quán)利要求B17所述的裝置,所述內(nèi)容提供者類為根據(jù)數(shù)據(jù)共享規(guī)則自定義的ContentProvider類,用以實(shí)現(xiàn)應(yīng)用商店與桌面的跨應(yīng)用數(shù)據(jù)共享。
B19、根據(jù)權(quán)利要求B14所述的裝置,在應(yīng)用程序的原圖標(biāo)上添加蒙版以作為指示圖標(biāo),并在圖標(biāo)的下方顯示名稱為等待下載以標(biāo)示該應(yīng)用程序處于等待下載狀態(tài)。
B20、根據(jù)權(quán)利要求B19所述的裝置,所述桌面進(jìn)程創(chuàng)建并顯示應(yīng)用程序的指示圖標(biāo)的同時將該應(yīng)用程序的包名、圖標(biāo)及應(yīng)用名稱存儲在桌面的數(shù)據(jù)庫中。
B21、根據(jù)權(quán)利要求B13所述的裝置,所述下載安裝包括應(yīng)用程序的下載任務(wù)和安裝任務(wù)。
B22、根據(jù)權(quán)利要求B21所述的裝置,所述下載安裝狀態(tài)包括所述下載任務(wù)中的等待下載、正在下載、暫停下載、繼續(xù)下載、刪除應(yīng)用程序、下載完成、下載失敗和重新下載中其中一項(xiàng),還包括安裝任務(wù)中的開始安裝、安裝失敗、重新安裝和安裝完成中其中一項(xiàng)。
B23、根據(jù)權(quán)利要求B13所述的裝置,通過根據(jù)應(yīng)用程序下載安裝狀態(tài)修改指令所自定義的執(zhí)行函數(shù)進(jìn)行對應(yīng)修改。
B24、根據(jù)權(quán)利要求B13所述的裝置,根據(jù)下載安裝狀態(tài)的修改指令,修改后的指示圖標(biāo)的變化如下:
當(dāng)應(yīng)用程序處于等待下載狀態(tài),接收到開始下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示下載進(jìn)度條,桌面進(jìn)程的指示圖標(biāo)上的蒙版的覆蓋區(qū)域由下往上褪去,褪去蒙版的圖標(biāo)區(qū)域占整個圖標(biāo)區(qū)域的比值為當(dāng)前應(yīng)用程序下載的進(jìn)度百分比,指示圖標(biāo)下方名稱顯示為下載中;
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到暫停下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為繼續(xù)下載,桌面進(jìn)程的指示圖標(biāo)上蒙版暫停在當(dāng)前下載的進(jìn)度,指示圖標(biāo)下方名稱顯示為暫停下載;
當(dāng)應(yīng)用程序處于暫停下載狀態(tài),接收到繼續(xù)下載的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為下載進(jìn)度條,桌面進(jìn)程的指示圖標(biāo)上的蒙版以當(dāng)前位置繼續(xù)褪去,指示圖標(biāo)下方名稱顯示為下載中;
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到刪除應(yīng)用程序的修改指令時,應(yīng)用商店進(jìn)程刪除該指示圖標(biāo),桌面進(jìn)程刪除該指示圖標(biāo);
當(dāng)應(yīng)用程序處于正在下載狀態(tài),接收到下載失敗狀態(tài)的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為下載失敗,桌面進(jìn)程的指示圖標(biāo)下方的名稱顯示為下載失?。?/p>
當(dāng)應(yīng)用程序處于下載失敗狀態(tài),接收到的重新下載的修改指令時,應(yīng)用商店進(jìn)程與桌面進(jìn)程指示圖標(biāo)恢復(fù)至正在下載狀態(tài);
當(dāng)應(yīng)用程序處于下載成功狀態(tài),接收到開始安裝的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝中,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為安裝中;
當(dāng)應(yīng)用程序處于安裝中狀態(tài),接收到安裝失敗的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝失敗,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為安裝失??;
當(dāng)應(yīng)用程序處于安裝失敗狀態(tài),接收到重新安裝的修改指令時,用于商店進(jìn)程與桌面進(jìn)程的指示圖標(biāo)恢復(fù)至正在安裝狀態(tài)。
當(dāng)應(yīng)用程序處于正在安裝中狀態(tài),接收到安裝成功的修改指令時,應(yīng)用商店進(jìn)程的指示圖標(biāo)顯示為安裝完成,桌面進(jìn)程的指示圖標(biāo)中蒙版全部褪去,顯示應(yīng)用程序的原圖標(biāo)并將原圖標(biāo)下方的名稱顯示為應(yīng)用程序的名稱。
本發(fā)明提供的技術(shù)方案中,當(dāng)用戶在應(yīng)用商店點(diǎn)擊下載指定應(yīng)用程序的時候,應(yīng)用商店進(jìn)程創(chuàng)建用于指示下載安裝狀態(tài)的指示圖標(biāo),并調(diào)用預(yù)置于Android系統(tǒng)的內(nèi)容提供者類的call方法回調(diào)桌面的創(chuàng)建下載變量,同時,將應(yīng)用程序的包名、圖標(biāo)和應(yīng)用程序名稱通過bundle傳遞到桌面;桌面根據(jù)接收的創(chuàng)建指令及應(yīng)用程序信息創(chuàng)建下載安裝狀態(tài)指示圖標(biāo)。此時,應(yīng)用商店進(jìn)程與桌面中均生成指示應(yīng)用程序下載安裝狀態(tài)的指示圖標(biāo)。在安裝應(yīng)用程序過程中,針對應(yīng)用商店與桌面中其中一方的指示圖標(biāo)而產(chǎn)生的下載安裝狀態(tài)修改指令,應(yīng)用商店與桌面中,可執(zhí)行針對自身顯示的指示圖標(biāo)的修改,并且回調(diào)另一方對應(yīng)的執(zhí)行函數(shù)以完成在該另一方所顯示的指示圖標(biāo)的修改,以使修改后的指示圖標(biāo)所指示的安裝狀態(tài)相對修改前發(fā)生改變。所述針對下載安裝狀態(tài)指示圖標(biāo)的變化如:當(dāng)應(yīng)用程序在安裝中時,桌面指示圖標(biāo)上的蒙版根據(jù)安裝進(jìn)度從下往上褪去,用戶可根據(jù)蒙版覆蓋圖標(biāo)的范圍得知當(dāng)前下載進(jìn)度;當(dāng)應(yīng)用程序下載成功時,桌面的指示圖標(biāo)上蒙版全部褪去,圖標(biāo)下方的名稱顯示為安裝中等等。
綜上所述,在應(yīng)用程序下載安裝過程中,用戶通過應(yīng)用商店和桌面任意一個界面查看到下載安裝狀態(tài),稀釋用戶對時間流動的感知,緩解用戶等待的焦慮從而能有效的提升用戶體驗(yàn)。
以上所述僅是本發(fā)明的部分實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。