專利名稱:一種預(yù)覽數(shù)據(jù)的方法和相關(guān)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種預(yù)覽數(shù)據(jù)的方法和相關(guān)裝置。
背景技術(shù):
在日常工作和生活中人們?cè)谑褂糜?jì)算機(jī)的過(guò)程中難免會(huì)對(duì)丟失或損壞的數(shù)據(jù)進(jìn)行恢復(fù),目前,數(shù)據(jù)恢復(fù)的過(guò)程是
軟件開發(fā)工具包(SDK,Software Development Kit)對(duì)需要恢復(fù)的數(shù)據(jù)進(jìn)行恢復(fù),然后系統(tǒng)對(duì)SDK恢復(fù)的數(shù)據(jù)進(jìn)行解析,解析成預(yù)覽控件支持的數(shù)據(jù)格式(如Jpg、doc等格式)的數(shù)據(jù),預(yù)覽控件顯示解析后的SDK恢復(fù)的數(shù)據(jù)。但由于目前的數(shù)據(jù)恢復(fù)技術(shù)很難做到把整個(gè)數(shù)據(jù)完整恢復(fù),當(dāng)系統(tǒng)將SDK恢復(fù)的數(shù)據(jù)解析后,在預(yù)覽控件顯示解析后的SDK恢復(fù)的數(shù)據(jù)時(shí),往往會(huì)因?yàn)閿?shù)據(jù)恢復(fù)的不完整, 導(dǎo)致預(yù)覽控件崩潰和預(yù)覽程序中止。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種預(yù)覽數(shù)據(jù)的方法和相關(guān)預(yù)覽控制,能有效解決預(yù)覽控件崩潰和預(yù)覽程序中止的問(wèn)題。本發(fā)明實(shí)施例提供了一種預(yù)覽數(shù)據(jù)的方法,包括
子進(jìn)程對(duì)軟件開發(fā)工具包SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載,所述SDK恢復(fù)的數(shù)據(jù)為預(yù)覽控件支持的數(shù)據(jù)格式的數(shù)據(jù);并判斷是否對(duì)SDK恢復(fù)的數(shù)據(jù)加載成功,若判斷結(jié)果為是,則向父進(jìn)程發(fā)送所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息;
父進(jìn)程判斷在預(yù)設(shè)的時(shí)間內(nèi)是否接收到子進(jìn)程發(fā)送的所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為是,則加載并顯示所述SDK恢復(fù)的數(shù)據(jù)。相應(yīng)地,本發(fā)明實(shí)施例還提供了一種預(yù)覽數(shù)據(jù)的裝置,包括
子進(jìn)程單元,用于對(duì)SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載,所述SDK恢復(fù)的數(shù)據(jù)為預(yù)覽控件支持的數(shù)據(jù)格式的數(shù)據(jù);并判斷是否對(duì)SDK恢復(fù)的數(shù)據(jù)加載成功,若判斷結(jié)果為是,則向父進(jìn)程單元發(fā)送所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息;
父進(jìn)程單元,用于判斷在預(yù)設(shè)的時(shí)間內(nèi)是否接收到子進(jìn)程單元發(fā)送的所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為是,則加載并顯示所述SDK恢復(fù)的數(shù)據(jù)。本發(fā)明實(shí)施例中,為了解決現(xiàn)有技術(shù)中預(yù)覽控件存在的問(wèn)題,通過(guò)設(shè)置一個(gè)子進(jìn)程對(duì)SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載,并判斷是否對(duì)SDK恢復(fù)的數(shù)據(jù)加載成功,若判斷結(jié)果為是, 則向父進(jìn)程發(fā)送所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息,由父進(jìn)程對(duì)這個(gè)數(shù)據(jù)進(jìn)行加載;父進(jìn)程判斷在預(yù)設(shè)的時(shí)間內(nèi)是否接收到子進(jìn)程發(fā)送的所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息, 若判斷結(jié)果為是,則加載并顯示所述SDK恢復(fù)的數(shù)據(jù),若否,則終止子進(jìn)程單元的程序,下次預(yù)覽再重新開啟一個(gè)子進(jìn)程。這樣父進(jìn)程只會(huì)顯示加載成功的數(shù)據(jù),從而有效解決預(yù)覽控件崩潰和預(yù)覽程序中止的問(wèn)題。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例一種預(yù)覽數(shù)據(jù)的方法的流程示意圖2是本發(fā)明實(shí)施例一種預(yù)覽數(shù)據(jù)的方法的另一實(shí)施例的流程示意圖; 圖3是本發(fā)明實(shí)施例一種預(yù)覽數(shù)據(jù)的方法的另一實(shí)施例的流程示意圖; 圖4是本發(fā)明實(shí)施例一種預(yù)覽數(shù)據(jù)的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。圖1是本發(fā)明實(shí)施例一種預(yù)覽數(shù)據(jù)的方法的流程示意圖,如圖1所示,包括 S101、子進(jìn)程對(duì)SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載。需要說(shuō)明的是,這里的所說(shuō)的SDK恢復(fù)的數(shù)據(jù)為預(yù)覽控件支持的數(shù)據(jù)格式的數(shù)據(jù),預(yù)覽控制支持的數(shù)據(jù)格式和現(xiàn)在技術(shù)一樣可以包括JPG和doc等公知的格式。S102、子進(jìn)程判斷是否對(duì)SDK恢復(fù)的數(shù)據(jù)加載成功,若判斷結(jié)果為是,則執(zhí)行步驟 S103子進(jìn)程向父進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為否,則可以執(zhí)行步驟S104子進(jìn)程終止加載SDK恢復(fù)的數(shù)據(jù)。S103、子進(jìn)程向父進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù)加載成功的消息??梢岳斫獾氖?,子進(jìn)程向父進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù)加載成功的消息,目的是通知父進(jìn)程SDK恢復(fù)是數(shù)據(jù)是完整的。需要說(shuō)明的是,子進(jìn)程向父進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù)加載成功的消息的步驟可以是子進(jìn)程建立廣播消息中心類(NSDistributed Notification Center)消息,并向父進(jìn)程發(fā)送所述 NSDistributed Notification Center 消息,所述 NSDistributed Notification Center消息包含SDK恢復(fù)的數(shù)據(jù)加載成功的消息。需要說(shuō)明的是,NSDistributed Notification Center的中文意思廣播消息中心類,是一個(gè)參考翻譯,在發(fā)明實(shí)施例中以NSDistributed Notification Center為準(zhǔn)。S104、子進(jìn)程終止加載SDK恢復(fù)的數(shù)據(jù)。需要說(shuō)明的是,子進(jìn)程終止加載SDK恢復(fù)的數(shù)據(jù),可以是子進(jìn)程在加載SDK恢復(fù)不完整的數(shù)據(jù)時(shí),子進(jìn)程因數(shù)據(jù)恢復(fù)不完整而中止程序,但子進(jìn)程中止程序后,即,子進(jìn)程可能卡死后或者掛掉后,不會(huì)對(duì)父進(jìn)程和預(yù)覽控制造成影響。S105、父進(jìn)程判斷在預(yù)設(shè)的時(shí)間內(nèi)是否接收到子進(jìn)程發(fā)送的SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為是,則執(zhí)行步驟106父進(jìn)程加載并顯示SDK恢復(fù)的數(shù)據(jù),若判斷結(jié)果為否,則可以執(zhí)行步驟S107終止子進(jìn)程。S106、父進(jìn)程加載并顯示SDK恢復(fù)的數(shù)據(jù)。
5
可以理解的是,父進(jìn)程加載并顯示SDK恢復(fù)的數(shù)據(jù),也就是SDK恢復(fù)的數(shù)據(jù)是完整的,不會(huì)讓預(yù)覽控件崩潰和數(shù)據(jù)恢復(fù)程序中止。
需要說(shuō)明的,父進(jìn)程加載并顯示SDK恢復(fù)的數(shù)據(jù),之前父進(jìn)程會(huì)把SDK恢復(fù)的數(shù)據(jù)解析成預(yù)覽控制支持的數(shù)據(jù)格式的數(shù)據(jù),此過(guò)程采用現(xiàn)有技術(shù)的方法,此處不用限定。預(yù)覽控制支持的數(shù)據(jù)格式可以包括JPG和doc等公知的格式。
S107、終止子進(jìn)程。
可以理解的是,父進(jìn)程在預(yù)設(shè)的時(shí)間內(nèi)沒(méi)有接收到子進(jìn)程發(fā)送的SDK恢復(fù)的數(shù)據(jù)加載成功的消息,就是說(shuō),子進(jìn)程加載的SDK恢復(fù)的數(shù)據(jù)是不完整的,如果父進(jìn)程顯示這個(gè)不完整的數(shù)據(jù),則會(huì)讓預(yù)覽控件崩潰和數(shù)據(jù)恢復(fù)程序中止,父進(jìn)程則可以終止子進(jìn)程,當(dāng)下次預(yù)覽再重新開啟一個(gè)子進(jìn)程。
本實(shí)施例中,子進(jìn)程對(duì)底層軟件開發(fā)包SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載,并判斷是否對(duì) SDK恢復(fù)的數(shù)據(jù)加載成功,若判斷結(jié)果為是,則向父進(jìn)程發(fā)送所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為否,則終止加載所述SDK恢復(fù)的數(shù)據(jù),父進(jìn)程判斷在預(yù)設(shè)的時(shí)間內(nèi)是否接收到子進(jìn)程發(fā)送的所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為是,則加載并顯示所述SDK恢復(fù)的數(shù)據(jù)。這樣父進(jìn)程只會(huì)顯示加載成功的數(shù)據(jù),從而有效解決預(yù)覽控件崩潰和預(yù)覽程序中止的問(wèn)題。
圖2是本明發(fā)實(shí)施例提供的一種預(yù)覽數(shù)據(jù)的方法的另一實(shí)施例的流程示意圖,如圖2所示,包括S201、父進(jìn)程向子進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù)。
S202、子進(jìn)程接收父進(jìn)程發(fā)送的SDK恢復(fù)的數(shù)據(jù),并將SDK恢復(fù)的數(shù)據(jù)解析成預(yù)覽控制支持的數(shù)據(jù)格式的數(shù)據(jù)。
需要說(shuō)明的是,預(yù)覽控制支持的數(shù)據(jù)格式和現(xiàn)在技術(shù)一樣可以包括JPG和doc等公知的格式。
S203、子進(jìn)程對(duì)SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載。
S204、子進(jìn)程判斷是否對(duì)SDK恢復(fù)的數(shù)據(jù)加載成功,若判斷結(jié)果為是,則執(zhí)行步驟 S205子進(jìn)程向父進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為否,則執(zhí)行步驟 S206子進(jìn)程終止加載SDK恢復(fù)的數(shù)據(jù)。
S205、子進(jìn)程向父進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù)加載成功的消息。
可以理解的是,子進(jìn)程向父進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù)加載成功的消息,目的是通知父進(jìn)程SDK恢復(fù)是數(shù)據(jù)是完整的。
需要說(shuō)明的是,子進(jìn)程向父進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù)加載成功的消息的步驟可以是子進(jìn)程建立廣播消息中心類(NSDistributed Notification Center)消息,并向父進(jìn)程發(fā)送所述 NSDistributed Notification Center 消息,所述 NSDistributed Notification Center消息包含SDK恢復(fù)的數(shù)據(jù)加載成功的消息。
需要說(shuō)明的是,NSDistributed Notification Center的中文意思廣播消息中心類,是一個(gè)參考翻譯,在發(fā)明實(shí)施例中以NSDistributed Notification Center為準(zhǔn)。
S206、子進(jìn)程終止加載SDK恢復(fù)的數(shù)據(jù)。
可以理解的是,子進(jìn)程終止加載SDK恢復(fù)的數(shù)據(jù),是指子進(jìn)程在加載SDK恢復(fù)不完整的數(shù)據(jù)時(shí),子進(jìn)程因數(shù)據(jù)恢復(fù)不完整而中止程序。6
需要說(shuō)明的是,子進(jìn)程中止程序后,不會(huì)對(duì)父進(jìn)程和預(yù)覽控制造成影響。S207、父進(jìn)程判斷在預(yù)設(shè)的時(shí)間內(nèi)是否接收到子進(jìn)程發(fā)送的SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為是,則執(zhí)行步驟S208父進(jìn)程加載并顯示SDK恢復(fù)的數(shù)據(jù),若判斷結(jié)果為否,則執(zhí)行步驟S209終止子進(jìn)程。S208、父進(jìn)程加載并顯示SDK恢復(fù)的數(shù)據(jù)??梢岳斫獾氖?,父進(jìn)程加載并顯示SDK恢復(fù)的數(shù)據(jù),也就是SDK恢復(fù)的數(shù)據(jù)是完整的,不會(huì)讓預(yù)覽控件崩潰和數(shù)據(jù)恢復(fù)程序中止。需要說(shuō)明的,父進(jìn)程加載并顯示SDK恢復(fù)的數(shù)據(jù),之前父進(jìn)程會(huì)把SDK恢復(fù)的數(shù)據(jù)解析成預(yù)覽控制支持的數(shù)據(jù)格式的數(shù)據(jù),此過(guò)程采用現(xiàn)有技術(shù)的方法,此處不用限定。預(yù)覽控制支持的數(shù)據(jù)格式可以包括JPG和doc等公知的格式。S209、終止子進(jìn)程。可以理解的是,父進(jìn)程在預(yù)設(shè)的時(shí)間內(nèi)沒(méi)有接收到子進(jìn)程發(fā)送的SDK恢復(fù)的數(shù)據(jù)加載成功的消息,就是說(shuō),子進(jìn)程加載的SDK恢復(fù)的數(shù)據(jù)是不完整的,如果父進(jìn)程顯示這個(gè)不完整的數(shù)據(jù),則會(huì)讓預(yù)覽控件崩潰和數(shù)據(jù)恢復(fù)程序中止,父進(jìn)程則可以終止子進(jìn)程,當(dāng)下次預(yù)覽再重新開啟一個(gè)子進(jìn)程。本實(shí)施例中,增加了子進(jìn)程把底層軟件開發(fā)包SDK恢復(fù)的數(shù)據(jù)解析成預(yù)覽控件能預(yù)覽的數(shù)據(jù)格式的數(shù)據(jù),這樣可以讓子進(jìn)程更有效地對(duì)解析后的數(shù)據(jù)進(jìn)行加載,有效的解決預(yù)覽控件崩潰和恢復(fù)數(shù)據(jù)的程序中止的問(wèn)題。圖3是本明發(fā)實(shí)施例一種預(yù)覽數(shù)據(jù)的方法的另一實(shí)施例的流程示意圖,如圖3所示,包括
S301、父進(jìn)程使用狀態(tài)機(jī)(NSCondition)標(biāo)識(shí)父進(jìn)程為忙狀態(tài)。需要說(shuō)明的是,父進(jìn)程使用NSCondition標(biāo)示父進(jìn)程為忙狀態(tài),父進(jìn)程為忙狀態(tài)時(shí)是不會(huì)執(zhí)行其它操作,以保證父進(jìn)程與子進(jìn)程在預(yù)覽數(shù)據(jù)過(guò)程是同步操作的,同時(shí),還可以解決因步驟S306中,采用(NSDistributed Notification Center)向父進(jìn)程發(fā)送加載成功的消息的過(guò)程造成的異步問(wèn)題。具體解決過(guò)程是,當(dāng)子進(jìn)程加載SDK恢復(fù)的數(shù)據(jù)的過(guò)程中,父進(jìn)程使用NSCondition標(biāo)示父進(jìn)程為忙狀態(tài),父進(jìn)程為忙狀態(tài)時(shí)是不會(huì)執(zhí)行其它任務(wù),以保證父進(jìn)程與子進(jìn)程在消息傳輸過(guò)程中是同步。S302、父進(jìn)程向子進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù)。需要說(shuō)明的是,步驟S301以及步驟S302可以同時(shí)執(zhí)行,或者先執(zhí)行步驟S302再執(zhí)行步驟S301。S303、子進(jìn)程接收父進(jìn)程發(fā)送的SDK恢復(fù)的數(shù)據(jù),并將SDK恢復(fù)的數(shù)據(jù)解析成預(yù)覽控制支持的數(shù)據(jù)格式的數(shù)據(jù)。需要說(shuō)明的是,預(yù)覽控制支持的數(shù)據(jù)格式和現(xiàn)在技術(shù)一樣可以包括JPG和doc等公知的格式。S304、子進(jìn)程對(duì)SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載。S305、子進(jìn)程判斷是否對(duì)SDK恢復(fù)的數(shù)據(jù)加載成功,若判斷結(jié)果為是,則執(zhí)行步驟 S306子進(jìn)程向父進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為否,則執(zhí)行步驟 S307子進(jìn)程終止加載SDK恢復(fù)的數(shù)據(jù)。S306、子進(jìn)程向父進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù)加載成功的消息。
可以理解的是,子進(jìn)程向父進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù)加載成功的消息,目的是通知父進(jìn)程SDK恢復(fù)是數(shù)據(jù)是完整的。需要說(shuō)明的是,子進(jìn)程向父進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù)加載成功的消息的步驟可以是子進(jìn)程建立廣播消息中心類(NSDistributed Notification Center)消息,并向父進(jìn)程發(fā)送所述 NSDistributed Notification Center 消息,所述 NSDistributed Notification Center消息包含SDK恢復(fù)的數(shù)據(jù)加載成功的消息。需要說(shuō)明的是,NSDistributed Notification Center的中文意思廣播消息中心類,是一個(gè)參考翻譯,在發(fā)明實(shí)施例中以NSDistributed Notification Center為準(zhǔn)。S307、子進(jìn)程終止加載SDK恢復(fù)的數(shù)據(jù)??梢岳斫獾氖?,子進(jìn)程終止加載SDK恢復(fù)的數(shù)據(jù),是指子進(jìn)程在加載SDK恢復(fù)不完整的數(shù)據(jù)時(shí),子進(jìn)程因數(shù)據(jù)恢復(fù)不完整而中止程序,即,子進(jìn)程可能卡死或者掛掉。需要說(shuō)明的是,子進(jìn)程中止程序后,不會(huì)對(duì)父進(jìn)程和預(yù)覽控制造成影響。S308、父進(jìn)程判斷在預(yù)設(shè)的時(shí)間內(nèi)是否接收到子進(jìn)程發(fā)送的SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為是,則執(zhí)行步驟S208父進(jìn)程加載并顯示SDK恢復(fù)的數(shù)據(jù),若判斷結(jié)果為否,則執(zhí)行步驟S209終止子進(jìn)程。S309、父進(jìn)程加載并顯示SDK恢復(fù)的數(shù)據(jù)。可以理解的是,父進(jìn)程加載并顯示SDK恢復(fù)的數(shù)據(jù),也就是SDK恢復(fù)的數(shù)據(jù)是完整的,不會(huì)讓預(yù)覽控件崩潰和數(shù)據(jù)恢復(fù)程序中止。需要說(shuō)明的,父進(jìn)程加載并顯示SDK恢復(fù)的數(shù)據(jù),之前父進(jìn)程會(huì)把SDK恢復(fù)的數(shù)據(jù)解析成預(yù)覽控制支持的數(shù)據(jù)格式的數(shù)據(jù),此過(guò)程采用現(xiàn)有技術(shù)的方法,此處不用限定。預(yù)覽控制支持的數(shù)據(jù)格式可以包括JPG和doc等公知的格式。S310、終止子進(jìn)程??梢岳斫獾氖牵高M(jìn)程在預(yù)設(shè)的時(shí)間內(nèi)沒(méi)有接收到子進(jìn)程發(fā)送的SDK恢復(fù)的數(shù)據(jù)加載成功的消息,就是說(shuō),子進(jìn)程加載的SDK恢復(fù)的數(shù)據(jù)是不完整的,如果父進(jìn)程顯示這個(gè)不完整的數(shù)據(jù),則會(huì)讓預(yù)覽控件崩潰和數(shù)據(jù)恢復(fù)程序中止,父進(jìn)程則可以終止子進(jìn)程,當(dāng)下次預(yù)覽再重新開啟一個(gè)子進(jìn)程。需要說(shuō)明的是,當(dāng)父進(jìn)程執(zhí)行步驟S308后,父進(jìn)程還可以使用NSCondition標(biāo)識(shí)父進(jìn)程為閑狀態(tài),這時(shí)父進(jìn)程就可以執(zhí)行其它操作。本實(shí)施例中,增加了父進(jìn)程使用NSCondition父進(jìn)程的狀態(tài),以保證父進(jìn)程與子進(jìn)程在消息傳輸過(guò)程中是同步的,同時(shí)有效的解決預(yù)覽控件崩潰和恢復(fù)數(shù)據(jù)的程序中止的問(wèn)題。圖4是本發(fā)明實(shí)施例提供的一種預(yù)覽數(shù)據(jù)的裝置的結(jié)構(gòu)示意圖,如圖4所示,本發(fā)明的實(shí)施例提供的預(yù)覽控件包括子進(jìn)程單元和進(jìn)程單元,其中
子進(jìn)程單元41,用于對(duì)SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載,并判斷是否對(duì)SDK恢復(fù)的數(shù)據(jù)加載成功,若判斷結(jié)果為是,則向父進(jìn)程單元42發(fā)送所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為否,則終止加載所述SDK恢復(fù)的數(shù)據(jù)。需要說(shuō)明的是,這里所說(shuō)的SDK恢復(fù)的數(shù)據(jù)為預(yù)覽控件支持的數(shù)據(jù)格式的數(shù)據(jù)。需要說(shuō)明的是,子進(jìn)程單元還可以包括解析單元411和加載單元412,其中
解析單元411,用于接收由父進(jìn)程單元42發(fā)送的SDK恢復(fù)的數(shù)據(jù),并將所述SDK恢復(fù)的
8數(shù)據(jù)解析成預(yù)覽控制支持的數(shù)據(jù)格式的數(shù)據(jù)。
加載單元412,用于對(duì)SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載,并判斷是否加載成功,若判斷結(jié)果為是,則向父進(jìn)程單元發(fā)送所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為否,則終止加載所述SDK恢復(fù)的數(shù)據(jù)。
父進(jìn)程單元42,用于判斷在預(yù)設(shè)的時(shí)間內(nèi)是否接收到子進(jìn)程單元41發(fā)送的所述 SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為是,則加載并顯示所述SDK恢復(fù)的數(shù)據(jù)。
需要說(shuō)明的是,父進(jìn)程單元42可以包括發(fā)送單元421和判斷單元422,其中 發(fā)送單元421,用于向子進(jìn)程單元41發(fā)送的SDK恢復(fù)的數(shù)據(jù)。
判斷單元422,用于判斷在預(yù)設(shè)的時(shí)間內(nèi)是否接收到子進(jìn)程單元41發(fā)送的所述 SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為是,則加載并顯示所述SDK恢復(fù)的數(shù)據(jù),若判斷結(jié)果為否,則終止所述子進(jìn)程單元41的程序。
需要說(shuō)明的是,父進(jìn)程單元42還可以包括狀態(tài)機(jī)423。
狀態(tài)機(jī)423,用于標(biāo)識(shí)父進(jìn)程單元42為忙狀態(tài)。
需要說(shuō)明的是,父進(jìn)程單元42使用NSCondition標(biāo)示父進(jìn)程單元32為忙狀態(tài),同時(shí)在有限時(shí)間里等待子進(jìn)程單元41的響應(yīng)消息。會(huì)存在分兩種情況,一種是正常情況,子進(jìn)程單元41加載SDK恢復(fù)的數(shù)據(jù)加載成功,發(fā)送加載成功的消息給父進(jìn)程單元42,父進(jìn)程單元42收到加載成功的消息后,標(biāo)識(shí)父進(jìn)程單元42閑狀態(tài),繼續(xù)進(jìn)行其他操作。另一種情況子進(jìn)程單元41加載SDK恢復(fù)的數(shù)據(jù)失敗,這時(shí)候父進(jìn)程單元42在有限時(shí)間里,沒(méi)收到子進(jìn)程單元41發(fā)過(guò)來(lái)的響應(yīng)消息,也標(biāo)識(shí)自己閑狀態(tài),繼續(xù)進(jìn)行其他操作,下次操作時(shí)候重新建立子進(jìn)程單元42,從而以保證父進(jìn)程單元42與子進(jìn)程單元41在預(yù)覽數(shù)據(jù)過(guò)程是同步操作的。
在本實(shí)施例中,為了解決現(xiàn)有技術(shù)中預(yù)覽控件存在的問(wèn)題,通過(guò)設(shè)置一個(gè)子進(jìn)程單元先對(duì)SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載,加載成功后發(fā)送加載成功的消息至父進(jìn)程單元,并把加載成功的數(shù)據(jù)發(fā)送到父進(jìn)程單元,由父進(jìn)程對(duì)這個(gè)數(shù)據(jù)進(jìn)行加載;父進(jìn)程單元在預(yù)設(shè)的時(shí)間內(nèi)判斷是否接收到子進(jìn)程單元發(fā)送的加載成功的消息,若有,則對(duì)子進(jìn)程單元加載成功的數(shù)據(jù)進(jìn)行顯示,若無(wú),則終止子進(jìn)程單元的程序,下次預(yù)覽再重新開啟一個(gè)子進(jìn)程單元,這樣就可以有效的解決預(yù)覽控件崩潰和恢復(fù)數(shù)據(jù)的程序中止的問(wèn)題。
以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
權(quán)利要求
1.一種預(yù)覽數(shù)據(jù)的方法,其特征在于,包括子進(jìn)程對(duì)軟件開發(fā)工具包SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載,所述SDK恢復(fù)的數(shù)據(jù)為預(yù)覽控件支持的數(shù)據(jù)格式的數(shù)據(jù);并判斷是否對(duì)SDK恢復(fù)的數(shù)據(jù)加載成功,若判斷結(jié)果為是,則向父進(jìn)程發(fā)送所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息;父進(jìn)程判斷在預(yù)設(shè)的時(shí)間內(nèi)是否接收到子進(jìn)程發(fā)送的所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為是,則加載并顯示所述SDK恢復(fù)的數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述子進(jìn)程對(duì)SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載之前包括父進(jìn)程向子進(jìn)程發(fā)送SDK恢復(fù)的數(shù)據(jù);子進(jìn)程接收父進(jìn)程發(fā)送的SDK恢復(fù)的數(shù)據(jù),并將所述SDK恢復(fù)的數(shù)據(jù)解析成預(yù)覽控制支持的數(shù)據(jù)格式的數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,其特征在于,所述父進(jìn)程向子進(jìn)程發(fā)送的SDK恢復(fù)的數(shù)據(jù)包括步驟父進(jìn)程通過(guò)內(nèi)存映射文件的方式向子進(jìn)程發(fā)送的SDK恢復(fù)的數(shù)據(jù)。
4.如權(quán)利要求2所述的方法,其特征在于,所述向父進(jìn)程發(fā)送所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息包括步驟子進(jìn)程建立廣播消息中心類NSDistributed Notification Center消息,并向父進(jìn)程發(fā)送所述 NSDistributed Notification Center 消息,所述 NSDistributed Notification Center消息包含所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息。
5.如權(quán)利要求2所述的方法,其特征在于,所述父進(jìn)程向子進(jìn)程發(fā)送的SDK恢復(fù)的數(shù)據(jù)的步驟還包括父進(jìn)程使用狀態(tài)機(jī)NSCondition標(biāo)識(shí)父進(jìn)程為忙狀態(tài)。
6.如權(quán)利要求1-5任一項(xiàng)所述的方法,其特征在于,父進(jìn)程判斷在預(yù)設(shè)的時(shí)間內(nèi)沒(méi)有接收到子進(jìn)程發(fā)送的所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息,則終止所述子進(jìn)程。
7.一種預(yù)覽數(shù)據(jù)的裝置,其特征在于,包括子進(jìn)程單元,用于對(duì)SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載,所述SDK恢復(fù)的數(shù)據(jù)為預(yù)覽控件支持的數(shù)據(jù)格式的數(shù)據(jù);并判斷是否對(duì)SDK恢復(fù)的數(shù)據(jù)加載成功,若判斷結(jié)果為是,則向父進(jìn)程單元發(fā)送所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息;父進(jìn)程單元,用于判斷在預(yù)設(shè)的時(shí)間內(nèi)是否接收到子進(jìn)程單元發(fā)送的所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為是,則加載并顯示所述SDK恢復(fù)的數(shù)據(jù)。
8.如權(quán)利要求7的所述的裝置,其特征在于,所述父進(jìn)程單元包括發(fā)送單元,用于通過(guò)內(nèi)存映射文件的方式向子進(jìn)程發(fā)送的SDK恢復(fù)的數(shù)據(jù);所述子進(jìn)程單元包括解析單元,用于接收所述發(fā)送單元發(fā)送的SDK恢復(fù)的數(shù)據(jù),并將所述SDK恢復(fù)的數(shù)據(jù)解析成預(yù)覽控制支持的數(shù)據(jù)格式的數(shù)據(jù);加載單元,用于對(duì)SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載,并判斷是否對(duì)SDK恢復(fù)的數(shù)據(jù)加載成功, 若判斷結(jié)果為是,則向父進(jìn)程單元發(fā)送所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息。
9.如權(quán)利要求8所述的裝置,其特征在于,所述父進(jìn)程單元還包括狀態(tài)機(jī),用于標(biāo)識(shí)父進(jìn)程單元為忙狀態(tài)。
10.如權(quán)利要求7-9任一項(xiàng)所述的裝置,其特征在于,所述父進(jìn)程單元包括 判斷單元,判斷在預(yù)設(shè)的時(shí)間內(nèi)是否接收到所述子進(jìn)程單元發(fā)送的所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為是,則加載并顯示所述SDK恢復(fù)的數(shù)據(jù),若判斷結(jié)果為否,則終止所述子進(jìn)程單元的程序。
全文摘要
本發(fā)明實(shí)施例公開了一種預(yù)覽數(shù)據(jù)的方法,包括子進(jìn)程對(duì)SDK恢復(fù)的數(shù)據(jù)進(jìn)行加載,并判斷是否對(duì)SDK恢復(fù)的數(shù)據(jù)加載成功,若判斷結(jié)果為是,則向父進(jìn)程發(fā)送所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息,父進(jìn)程判斷在預(yù)設(shè)的時(shí)間內(nèi)是否接收到子進(jìn)程發(fā)送的所述SDK恢復(fù)的數(shù)據(jù)加載成功的消息,若判斷結(jié)果為是,則加載并顯示所述SDK恢復(fù)的數(shù)據(jù);本發(fā)明實(shí)施例還公開了一種預(yù)覽數(shù)據(jù)裝置。本發(fā)明實(shí)施例中父進(jìn)程只會(huì)對(duì)數(shù)據(jù)加載成功的數(shù)據(jù)進(jìn)行顯示,這樣就有效解決預(yù)覽控件崩潰和預(yù)覽程序中止的問(wèn)題。
文檔編號(hào)G06F9/445GK102520934SQ20111038622
公開日2012年6月27日 申請(qǐng)日期2011年11月29日 優(yōu)先權(quán)日2011年11月29日
發(fā)明者陳棟 申請(qǐng)人:深圳市萬(wàn)興軟件有限公司