本發(fā)明涉及終端數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種應(yīng)用程序啟動方法及系統(tǒng)。
背景技術(shù):
在現(xiàn)今各式消費性電子設(shè)備市場中,手機、平板電腦、筆記本電腦等便攜式電子設(shè)備已經(jīng)被廣泛使用。
目前的手機或平板電腦等電子設(shè)備上的應(yīng)用程序啟動的時候,如果有數(shù)據(jù)需要加載,一般會直接在用戶界面(User Interface,UI)線程中進行加載,數(shù)據(jù)加載完畢之后才能呈現(xiàn)應(yīng)用程序的用戶界面。這種方式會嚴(yán)重影響應(yīng)用程序啟動時功能界面呈現(xiàn)的速度。并且,如果在UI線程執(zhí)行了太久的操作,應(yīng)用程序可能會無法響應(yīng),用戶會被詢問是否關(guān)閉當(dāng)前應(yīng)用程序,這給用戶帶來不好的體驗。因此,為了提高應(yīng)用程序啟動時用戶界面的呈現(xiàn)速度,提高用戶體驗,現(xiàn)有技術(shù)還需要改進和發(fā)展。
技術(shù)實現(xiàn)要素:
鑒于以上內(nèi)容,有必要提出一種應(yīng)用程序啟動方法,其可以加快應(yīng)用程序啟動時用戶界面的呈現(xiàn)速度,提高用戶體驗。
本申請的第一方面提供一種應(yīng)用程序啟動方法,包括:
當(dāng)偵測到啟動應(yīng)用程序時,啟動用戶界面線程;
通過所述用戶界面線程呈現(xiàn)所述應(yīng)用程序的用戶界面;
啟動數(shù)據(jù)加載線程;及
通過所述數(shù)據(jù)加載線程加載所述應(yīng)用程序的數(shù)據(jù)。
另一種可能的實現(xiàn)方式中,所述方法還包括:
如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢,則通知所述用戶界面線程更新所述應(yīng)用程序的用戶界面。
另一種可能的實現(xiàn)方式中,所述方法還包括:
如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢,則允許用戶在所述應(yīng)用程序的用戶界面上進行操作;及
如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)沒有加載完畢,則拒絕用戶在所述應(yīng)用程序的用戶界面上進行操作。
另一種可能的實現(xiàn)方式中,所述方法還包括:
在通過所述用戶界面線程呈現(xiàn)所述應(yīng)用程序的用戶界面之前,創(chuàng)建所述數(shù)據(jù)加載線程,并使其處于阻塞/等待狀態(tài)。
另一種可能的實現(xiàn)方式中,所述方法還包括:
在通過所述用戶界面線程呈現(xiàn)所述應(yīng)用程序的用戶界面之前,啟動數(shù)據(jù)預(yù)加載線程,通過所述數(shù)據(jù)預(yù)加載線程加載呈現(xiàn)所述應(yīng)用程序的用戶界面所需的預(yù)加載數(shù)據(jù)。
本申請的第二方面提供一種應(yīng)用程序啟動系統(tǒng),包括:
第一啟動單元,用于當(dāng)偵測到啟動應(yīng)用程序時,啟動用戶界面線程,通過所述用戶界面線程呈現(xiàn)所述應(yīng)用程序的用戶界面;及
第二啟動單元,用于啟動數(shù)據(jù)加載線程,通過所述數(shù)據(jù)加載線程加載所述應(yīng)用程序的數(shù)據(jù)。
另一種可能的實現(xiàn)方式中,所述系統(tǒng)還包括:
更新單元,用于當(dāng)所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢時,通知所述用戶界面線程更新所述應(yīng)用程序的用戶界面。
另一種可能的實現(xiàn)方式中,所述系統(tǒng)還包括:
第一控制單元,用于在所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢后,允許用戶在所述應(yīng)用程序的用戶界面上進行操作;及
第二控制單元,用于在所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢之前,拒絕用戶在所述應(yīng)用程序的用戶界面上進行操作。
另一種可能的實現(xiàn)方式中,所述系統(tǒng)還包括:
創(chuàng)建單元,用于在所述第一啟動單元通過所述用戶界面線程呈現(xiàn)所述應(yīng)用程序的用戶界面之前,創(chuàng)建所述數(shù)據(jù)加載線程,并使其處于阻塞/等待狀態(tài)。
另一種可能的實現(xiàn)方式中,所述系統(tǒng)還包括:
預(yù)加載單元,用于在所述第一啟動單元通過所述用戶界面線程呈現(xiàn)所述應(yīng)用程序的用戶界面之前,啟動數(shù)據(jù)預(yù)加載線程,通過所述數(shù)據(jù)預(yù)加載線程加載呈現(xiàn)所述應(yīng)用程序的用戶界面所需的預(yù)加載數(shù)據(jù)。
本發(fā)明所提供的實施例中,在啟動應(yīng)用程序后,可以快速呈現(xiàn)應(yīng)用程序的用戶界面,提高了用戶體驗,避免了由于用戶界面線程長時間加載數(shù)據(jù)使得應(yīng)用程序無法響應(yīng)的情況。
附圖說明
圖1是本發(fā)明實施例一提供的應(yīng)用程序啟動方法的流程圖。
圖2是本發(fā)明實施例二提供的應(yīng)用程序啟動方法的流程圖。
圖3是本發(fā)明實施例三提供的應(yīng)用程序啟動方法的流程圖。
圖4是本發(fā)明實施例四提供的應(yīng)用程序啟動系統(tǒng)的結(jié)構(gòu)圖。
圖5是本發(fā)明實施例五提供的應(yīng)用程序啟動系統(tǒng)的結(jié)構(gòu)圖。
圖6是本發(fā)明實施例六提供的應(yīng)用程序啟動系統(tǒng)的結(jié)構(gòu)圖。
主要元件符號說明
第一啟動單元 401、501、601
第二啟動單元 402、502、602
更新單元 403、503、603
第一控制單元 404、504、604
第二控制單元 405、505、605
預(yù)加載單元 506
創(chuàng)建單元 606
如下具體實施方式將結(jié)合上述附圖進一步說明本發(fā)明。
具體實施方式
為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細(xì)描述。需要說明的是,在不沖突的情況下,本申請的實施例及實施例中的特征可以相互組合。
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
除非另有定義,本文所使用的所有的技術(shù)和科學(xué)術(shù)語與屬于本發(fā)明的技術(shù)領(lǐng)域的技術(shù)人員通常理解的含義相同。本文中在本發(fā)明的說明書中所使用的術(shù)語只是為了描述具體的實施例的目的,不是旨在于限制本發(fā)明。
實施例一
圖1為本發(fā)明實施例一提供的應(yīng)用程序啟動方法的流程圖。如圖1所示,該方法具體包括以下步驟:
101:偵測用戶是否啟動應(yīng)用程序??梢酝ㄟ^偵測用戶是否執(zhí)行預(yù)設(shè)的觸發(fā)動作,例如長按、點擊或雙擊應(yīng)用程序的圖標(biāo)來確定用戶是否啟動應(yīng)用程序。當(dāng)偵測到所述預(yù)設(shè)的觸發(fā)動作時,確定用戶啟動所述應(yīng)用程序。
當(dāng)未偵測到啟動應(yīng)用程序時,重復(fù)執(zhí)行101。
102:當(dāng)偵測到啟動應(yīng)用程序時,啟動用戶界面(User Interface,UI)線程。
103:通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面。所述通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面可以是通過所述UI線程呈現(xiàn)所述應(yīng)用程序的主界面。所述應(yīng)用程序的主界面顯示所述應(yīng)用程序的主要功能。在本實施例中,所述通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面是通過所述UI線程呈現(xiàn)所述應(yīng)用程序的首頁。在其他的實施例中,所述通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面可以是通過所述UI線程呈現(xiàn)所述應(yīng)用程序其他的功能頁面,例如用戶關(guān)閉所述應(yīng)用程序之前瀏覽的功能頁面。
104:啟動數(shù)據(jù)加載線程。
105:通過所述數(shù)據(jù)加載線程加載所述應(yīng)用程序的數(shù)據(jù)。所述應(yīng)用程序的數(shù)據(jù)可以包括所述應(yīng)用程序的初始化數(shù)據(jù),用于對所述應(yīng)用程序進行數(shù)據(jù)初始化操作。
106:判斷所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)是否加載完畢。如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢,則依次執(zhí)行107、108。否則,如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)沒有加載完畢,則執(zhí)行109。所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)可以是一部分或全部所述應(yīng)用程序的數(shù)據(jù)。例如,所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)是所述應(yīng)用程序的初始化數(shù)據(jù)。
107:如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢,則通知所述UI線程更新所述應(yīng)用程序的用戶界面。
108:允許用戶在所述應(yīng)用程序的用戶界面上進行操作。例如接收用戶在所述應(yīng)用程序的用戶界面上對功能按鈕的點擊操作,以對該點擊操作進行響應(yīng)。
109:如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)沒有加載完畢,則禁止用戶在所述應(yīng)用程序的用戶界面上進行操作。例如,如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)沒有加載完畢,則當(dāng)用戶點擊所述應(yīng)用程序的用戶界面上的功能按鈕時,提示用戶“數(shù)據(jù)加載未完成,請稍后再試”。
實施例二
圖2為本發(fā)明實施例二提供的應(yīng)用程序啟動方法的流程圖。如圖2所示,該方法具體包括以下步驟:
201:偵測用戶是否啟動應(yīng)用程序??梢酝ㄟ^偵測用戶是否執(zhí)行預(yù)設(shè)的觸發(fā)動作,例如長按、點擊或雙擊應(yīng)用程序的圖標(biāo)來確定用戶是否啟動應(yīng)用程序。當(dāng)偵測到所述預(yù)設(shè)的觸發(fā)動作時,確定用戶啟動所述應(yīng)用程序。
當(dāng)未偵測到啟動應(yīng)用程序時,重復(fù)執(zhí)行201。
202:當(dāng)偵測到啟動應(yīng)用程序時,啟動數(shù)據(jù)預(yù)加載線程。
203:通過所述數(shù)據(jù)預(yù)加載線程加載呈現(xiàn)所述應(yīng)用程序的用戶界面必需的預(yù)加載數(shù)據(jù)。
204:啟動用戶界面(User Interface,UI)線程。
205:根據(jù)所述預(yù)加載數(shù)據(jù)通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面。所述通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面可以是通過所述UI線程呈現(xiàn)所述應(yīng)用程序的主界面。所述應(yīng)用程序的主界面顯示所述應(yīng)用程序的主要功能。在本實施例中,所述通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面是通過所述UI線程呈現(xiàn)所述應(yīng)用程序的首頁。在其他的實施例中,所述通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面可以是通過所述UI線程呈現(xiàn)所述應(yīng)用程序其他的功能頁面,例如用戶關(guān)閉所述應(yīng)用程序之前瀏覽的功能頁面。
206:啟動數(shù)據(jù)加載線程。
207:通過所述數(shù)據(jù)加載線程加載所述應(yīng)用程序的數(shù)據(jù)。所述應(yīng)用程序的數(shù)據(jù)可以包括所述應(yīng)用程序的初始化數(shù)據(jù),用于對所述應(yīng)用程序進行數(shù)據(jù)初始化操作。
208:判斷所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)是否加載完畢。如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢,則依次執(zhí)判斷行209、210。否則,如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)沒有加載完畢,則執(zhí)行211。所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)可以是一部分或全部所述應(yīng)用程序的數(shù)據(jù)。例如,所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)是所述應(yīng)用程序的初始化數(shù)據(jù)。
209:如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢,則通知所述UI線程更新所述應(yīng)用程序的用戶界面。
210:允許用戶在所述應(yīng)用程序的用戶界面上進行操作。例如接收用戶在所述應(yīng)用程序的用戶界面上對功能按鈕的點擊操作,以對該點擊操作進行響應(yīng)。
211:如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)沒有加載完畢,則禁止用戶在所述應(yīng)用程序的用戶界面上進行操作。例如,如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)沒有加載完畢,則當(dāng)用戶點擊所述應(yīng)用程序的用戶界面上的功能按鈕時,提示用戶“數(shù)據(jù)加載未完成,請稍后再試”。
實施例三
圖3為本發(fā)明實施例三提供的應(yīng)用程序啟動方法的流程圖。如圖3所示,該方法具體包括以下步驟:
301:創(chuàng)建數(shù)據(jù)加載線程,使所述數(shù)據(jù)加載線程處于阻塞/等待狀態(tài)。當(dāng)所述數(shù)據(jù)加載線程處于阻塞/等待狀態(tài)時,所述數(shù)據(jù)加載線程并不執(zhí)行數(shù)據(jù)加載操作。
302:偵測用戶是否啟動應(yīng)用程序。可以通過偵測用戶是否執(zhí)行預(yù)設(shè)的觸發(fā)動作,例如長按、點擊或雙擊應(yīng)用程序的圖標(biāo)來確定用戶是否啟動應(yīng)用程序。當(dāng)偵測到所述預(yù)設(shè)的觸發(fā)動作時,確定用戶啟動所述應(yīng)用程序。
當(dāng)未偵測到啟動應(yīng)用程序時,重復(fù)執(zhí)行302。
303:當(dāng)偵測到啟動應(yīng)用程序時,啟動用戶界面(User Interface,UI)線程。
304:通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面。所述通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面可以是通過所述UI線程呈現(xiàn)所述應(yīng)用程序的主界面。所述應(yīng)用程序的主界面顯示所述應(yīng)用程序的主要功能。在本實施例中,所述通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面是通過所述UI線程呈現(xiàn)所述應(yīng)用程序的首頁。在其他的實施例中,所述通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面可以是通過所述UI線程呈現(xiàn)所述應(yīng)用程序其他的功能頁面,例如用戶關(guān)閉所述應(yīng)用程序之前瀏覽的功能頁面。
305:在呈現(xiàn)所述應(yīng)用程序的用戶界面后,啟動所述數(shù)據(jù)加載線程。
306:通過所述數(shù)據(jù)加載線程加載所述應(yīng)用程序的數(shù)據(jù)所述應(yīng)用程序的數(shù)據(jù)可以包括所述應(yīng)用程序的初始化數(shù)據(jù),用于對所述應(yīng)用程序進行數(shù)據(jù)初始化操作。
307:判斷所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)是否加載完畢。如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢,則依次執(zhí)判斷行308、309。否則,如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)沒有加載完畢,則執(zhí)行310。所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)可以是一部分或全部所述應(yīng)用程序的數(shù)據(jù)。例如,所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)是所述應(yīng)用程序的初始化數(shù)據(jù)。
308:如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢,則通知所述UI線程更新所述應(yīng)用程序的用戶界面。
309:允許用戶在所述應(yīng)用程序的用戶界面上進行操作。例如接收用戶在所述應(yīng)用程序的用戶界面上對功能按鈕的點擊操作,以對該點擊操作進行響應(yīng)。
310:如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)沒有加載完畢,則禁止用戶在所述應(yīng)用程序的用戶界面上進行操作。例如,如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)沒有加載完畢,則當(dāng)用戶點擊所述應(yīng)用程序的用戶界面上的功能按鈕時,提示用戶“數(shù)據(jù)加載未完成,請稍后再試”。
實施例三在呈現(xiàn)應(yīng)用程序的用戶界面之前預(yù)先創(chuàng)建好數(shù)據(jù)加載線程,在UI線程呈現(xiàn)應(yīng)用程序的用戶界面后啟動該創(chuàng)建好的數(shù)據(jù)加載線程,從而進一步加快應(yīng)用程序啟動速度。
以上是對本發(fā)明所提供的方法進行的詳細(xì)描述。根據(jù)不同的需求,所示流程圖中方塊的執(zhí)行順序可以改變,某些方塊可以省略。例如,在上述實施例一~三中,均包括“如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢,允許用戶在所述應(yīng)用程序的用戶界面上進行操作”及“如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)沒有加載完畢,則禁止用戶在所述應(yīng)用程序的用戶界面上進行操作”。在其他的實施例中,上述步驟可以省略。下面對本發(fā)明所提供的系統(tǒng)進行描述。
實施例四
圖4為本發(fā)明實施例四提供的應(yīng)用程序啟動系統(tǒng)的結(jié)構(gòu)圖。如圖4所示,所述應(yīng)用程序啟動系統(tǒng)可以包括:第一啟動單元401、第二啟動單元402、更新單元403、第一控制單元404及第二控制單元405。
第一啟動單元401,用于偵測用戶是否啟動應(yīng)用程序。所述第一啟動單元401可以通過偵測用戶是否執(zhí)行預(yù)設(shè)的觸發(fā)動作,例如長按、點擊或雙擊應(yīng)用程序的圖標(biāo)來確定用戶是否啟動應(yīng)用程序。當(dāng)偵測到所述預(yù)設(shè)的觸發(fā)動作時,所述第一啟動單元401確定用戶啟動所述應(yīng)用程序。
所述第一啟動單元401,還用于當(dāng)偵測到啟動應(yīng)用程序時,啟動用戶界面(User Interface,UI)線程,通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面。所述第一啟動單元401可以通過所述UI線程呈現(xiàn)所述應(yīng)用程序的主界面。所述應(yīng)用程序的主界面顯示所述應(yīng)用程序的主要功能。在本實施例中,所述第一啟動單元401通過所述UI線程呈現(xiàn)所述應(yīng)用程序的首頁。在其他的實施例中,所述第一啟動單元401可以通過所述UI線程呈現(xiàn)所述應(yīng)用程序其他的功能頁面,例如用戶關(guān)閉所述應(yīng)用程序之前瀏覽的功能頁面。
第二啟動單元402,用于啟動數(shù)據(jù)加載線程,通過所述數(shù)據(jù)加載線程加載所述應(yīng)用程序的數(shù)據(jù)。所述應(yīng)用程序的數(shù)據(jù)可以包括所述應(yīng)用程序的初始化數(shù)據(jù),用于對所述應(yīng)用程序進行數(shù)據(jù)初始化操作。在本實施例中,第二啟動單元402在呈現(xiàn)所述應(yīng)用程序的用戶界面后啟動數(shù)據(jù)加載線程。
更新單元403,用于當(dāng)所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢時,通知所述UI線程更新所述應(yīng)用程序的用戶界面。所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)可以是一部分或全部所述應(yīng)用程序的數(shù)據(jù)。例如,所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)是所述應(yīng)用程序的初始化數(shù)據(jù)。
第一控制單元404,用于在所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢后,允許用戶在所述應(yīng)用程序的用戶界面上進行操作。例如接收用戶在所述應(yīng)用程序的用戶界面上對功能按鈕的點擊操作,以對該點擊操作進行響應(yīng)。
第二控制單元405,用于在所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢之前,拒絕用戶在所述應(yīng)用程序的用戶界面上進行操作。例如,如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)沒有加載完畢,則當(dāng)用戶點擊所述應(yīng)用程序的用戶界面上的功能按鈕時,提示用戶“數(shù)據(jù)加載未完成,請稍后再試”。
實施例五
圖5為本發(fā)明實施例四提供的應(yīng)用程序啟動系統(tǒng)的結(jié)構(gòu)圖。如圖5所示,所述應(yīng)用程序啟動系統(tǒng)可以包括:第一啟動單元501、第二啟動單元502、更新單元503、第一控制單元504、第二控制單元505及預(yù)加載單元506。
第一啟動單元501,用于偵測用戶是否啟動應(yīng)用程序。所述第一啟動單元501可以通過偵測用戶是否執(zhí)行預(yù)設(shè)的觸發(fā)動作,例如長按、點擊或雙擊應(yīng)用程序的圖標(biāo)來確定用戶是否啟動應(yīng)用程序。當(dāng)偵測到所述預(yù)設(shè)的觸發(fā)動作時,所述第一啟動單元501確定用戶啟動所述應(yīng)用程序。
所述第一啟動單元501,還用于當(dāng)偵測到啟動應(yīng)用程序時,啟動用戶界面(User Interface,UI)線程,通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面。所述第一啟動單元501可以通過所述UI線程呈現(xiàn)所述應(yīng)用程序的主界面。所述應(yīng)用程序的主界面顯示所述應(yīng)用程序的主要功能。在本實施例中,所述第一啟動單元501通過所述UI線程呈現(xiàn)所述應(yīng)用程序的首頁。在其他的實施例中,所述第一啟動單元501可以通過所述UI線程呈現(xiàn)所述應(yīng)用程序其他的功能頁面,例如用戶關(guān)閉所述應(yīng)用程序之前瀏覽的功能頁面。
第二啟動單元502,用于啟動數(shù)據(jù)加載線程,通過所述數(shù)據(jù)加載線程加載所述應(yīng)用程序的數(shù)據(jù)。所述應(yīng)用程序的數(shù)據(jù)可以包括所述應(yīng)用程序的初始化數(shù)據(jù),用于對所述應(yīng)用程序進行數(shù)據(jù)初始化操作。在本實施例中,第二啟動單元502在呈現(xiàn)所述應(yīng)用程序的用戶界面后啟動數(shù)據(jù)加載線程。
更新單元503,用于當(dāng)所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢時,通知所述UI線程更新所述應(yīng)用程序的用戶界面。所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)可以是一部分或全部所述應(yīng)用程序的數(shù)據(jù)。例如,所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)是所述應(yīng)用程序的初始化數(shù)據(jù)。
第一控制單元504,用于在所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢后,允許用戶在所述應(yīng)用程序的用戶界面上進行操作。例如接收用戶在所述應(yīng)用程序的用戶界面上對功能按鈕的點擊操作,以對該點擊操作進行響應(yīng)。
第二控制單元505,用于在所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢之前,拒絕用戶在所述應(yīng)用程序的用戶界面上進行操作。例如,如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)沒有加載完畢,則當(dāng)用戶點擊所述應(yīng)用程序的用戶界面上的功能按鈕時,提示用戶“數(shù)據(jù)加載未完成,請稍后再試”。
預(yù)加載單元506,用于在所述第一啟動單元501通過所述用戶界面線程呈現(xiàn)所述應(yīng)用程序的用戶界面之前,啟動數(shù)據(jù)預(yù)加載線程,通過所述數(shù)據(jù)預(yù)加載線程加載呈現(xiàn)所述應(yīng)用程序的用戶界面所需的預(yù)加載數(shù)據(jù)。
實施例六
圖6為本發(fā)明實施例四提供的應(yīng)用程序啟動系統(tǒng)的結(jié)構(gòu)圖。如圖6所示,所述應(yīng)用程序啟動系統(tǒng)可以包括:第一啟動單元601、第二啟動單元602、更新單元603、第一控制單元604、第二控制單元605及創(chuàng)建單元606。
第一啟動單元601,用于偵測用戶是否啟動應(yīng)用程序。所述第一啟動單元601可以通過偵測用戶是否執(zhí)行預(yù)設(shè)的觸發(fā)動作,例如長按、點擊或雙擊應(yīng)用程序的圖標(biāo)來確定用戶是否啟動應(yīng)用程序。當(dāng)偵測到所述預(yù)設(shè)的觸發(fā)動作時,所述第一啟動單元601確定用戶啟動所述應(yīng)用程序。
所述第一啟動單元601,還用于當(dāng)偵測到啟動應(yīng)用程序時,啟動用戶界面(User Interface,UI)線程,通過所述UI線程呈現(xiàn)所述應(yīng)用程序的用戶界面。所述第一啟動單元601可以通過所述UI線程呈現(xiàn)所述應(yīng)用程序的主界面。所述應(yīng)用程序的主界面顯示所述應(yīng)用程序的主要功能。在本實施例中,所述第一啟動單元601通過所述UI線程呈現(xiàn)所述應(yīng)用程序的首頁。在其他的實施例中,所述第一啟動單元601可以通過所述UI線程呈現(xiàn)所述應(yīng)用程序其他的功能頁面,例如用戶關(guān)閉所述應(yīng)用程序之前瀏覽的功能頁面。
第二啟動單元602,用于啟動數(shù)據(jù)加載線程,通過所述數(shù)據(jù)加載線程加載所述應(yīng)用程序的數(shù)據(jù)。所述應(yīng)用程序的數(shù)據(jù)可以包括所述應(yīng)用程序的初始化數(shù)據(jù),用于對所述應(yīng)用程序進行數(shù)據(jù)初始化操作。在本實施例中,第二啟動單元602在呈現(xiàn)所述應(yīng)用程序的用戶界面后啟動數(shù)據(jù)加載線程。
更新單元603,用于當(dāng)所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢時,通知所述UI線程更新所述應(yīng)用程序的用戶界面。所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)可以是一部分或全部所述應(yīng)用程序的數(shù)據(jù)。例如,所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)是所述應(yīng)用程序的初始化數(shù)據(jù)。
第一控制單元604,用于在所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢后,允許用戶在所述應(yīng)用程序的用戶界面上進行操作。例如接收用戶在所述應(yīng)用程序的用戶界面上對功能按鈕的點擊操作,以對該點擊操作進行響應(yīng)。
第二控制單元605,用于在所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)加載完畢之前,拒絕用戶在所述應(yīng)用程序的用戶界面上進行操作。例如,如果所述應(yīng)用程序的數(shù)據(jù)中的第一數(shù)據(jù)沒有加載完畢,則當(dāng)用戶點擊所述應(yīng)用程序的用戶界面上的功能按鈕時,提示用戶“數(shù)據(jù)加載未完成,請稍后再試”。
創(chuàng)建單元606,用于在所述第一啟動單元601通過所述用戶界面線程呈現(xiàn)所述應(yīng)用程序的用戶界面之前,創(chuàng)建所述數(shù)據(jù)加載線程,并使其處于阻塞/等待狀態(tài)。
在本發(fā)明所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng)和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的系統(tǒng)實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在相同處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在相同單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能模塊的形式實現(xiàn)。
上述以軟件功能單元的形式實現(xiàn)的集成的單元,可以存儲在一個計算機可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺電子設(shè)備(可以是手持式電子設(shè)備,如智能手機、筆記本電腦、個人數(shù)字助理(Personal Digital Assistant,PDA)、智能式穿戴式設(shè)備等,也可以是桌面式電子設(shè)備,如臺式機、智能電視等)或處理器(processor)執(zhí)行本發(fā)明各個實施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(Read-Only Memory,ROM)、隨機存取存儲器(Random Access Memory,RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
對于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實現(xiàn)本發(fā)明。因此,無論從哪一點來看,均應(yīng)將實施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本發(fā)明內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。系統(tǒng)權(quán)利要求中陳述的多個單元或裝置也可以由同一個單元或裝置通過軟件或者硬件來實現(xiàn)。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。
最后應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實施例對本發(fā)明進行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進行修改或等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍。