亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

應(yīng)用程序未截獲異常的處理方法及裝置與流程

文檔序號(hào):11638323閱讀:167來源:國知局
應(yīng)用程序未截獲異常的處理方法及裝置與流程
本發(fā)明涉及顯示終端領(lǐng)域,特別涉及一種應(yīng)用程序未截獲異常的處理方法及裝置。

背景技術(shù):
眾所周知,在Android內(nèi)存溢出時(shí),會(huì)拋出OOM(OutOfMemory,內(nèi)存不足)異常,此異常在應(yīng)用程序的代碼中是不能截獲的。此類未截獲的異常發(fā)生時(shí),系統(tǒng)會(huì)彈出一個(gè)錯(cuò)誤提示對話框,此時(shí)用戶需要關(guān)閉提示對話框并重新點(diǎn)擊運(yùn)行此應(yīng)用程序,由于此種方式的操作繁瑣,從而使得用戶的體驗(yàn)度較差。

技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提供一種應(yīng)用程序未截獲異常的處理方法,旨在降低因應(yīng)用程序運(yùn)行出錯(cuò)而出現(xiàn)錯(cuò)誤提示對話框給用戶帶來的繁瑣操作,以提高用戶的體驗(yàn)度。為了實(shí)現(xiàn)發(fā)明目的,本發(fā)明提供一種應(yīng)用程序未截獲異常的處理方法,該應(yīng)用程序未截獲異常的處理方法包括以下步驟:A、當(dāng)應(yīng)用程序運(yùn)行時(shí),獲取應(yīng)用程序未截獲的異常信息;B、根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并重啟所述應(yīng)用程序。優(yōu)選地,在執(zhí)行所述步驟B之前還包括:C、判斷所述應(yīng)用程序重啟的次數(shù)是否大于預(yù)置值;若是則執(zhí)行步驟D,否則執(zhí)行步驟B;D、根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并結(jié)束當(dāng)前應(yīng)用程序的啟動(dòng)。優(yōu)選地,在執(zhí)行所述步驟B之后還包括:E、清空重啟所述應(yīng)用程序前所述應(yīng)用程序所占用的資源。優(yōu)選地,在執(zhí)行所述步驟B之前還包括:F、判斷啟動(dòng)應(yīng)用程序至獲取到異常信息之間的時(shí)間差是否小于預(yù)置時(shí)間;若是則執(zhí)行步驟G,否則執(zhí)行步驟B;G、等待所述應(yīng)用程序啟動(dòng)時(shí)間達(dá)到預(yù)置時(shí)間時(shí),執(zhí)行所述步驟B。優(yōu)選地,所述步驟A之前包括:通過Android的commonInit機(jī)制配置異常處理程序,并在所述異常處理程序中,通過調(diào)用handleApplicationCrash函數(shù)進(jìn)行應(yīng)用程序異常處理。本發(fā)明還提供一種應(yīng)用程序未截獲異常的處理裝置,該應(yīng)用程序未截獲異常的處理裝置包括獲取模塊,用于當(dāng)應(yīng)用程序運(yùn)行時(shí),獲取應(yīng)用程序未截獲的異常信息;處理模塊,用于根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并重啟所述應(yīng)用程序。優(yōu)選地,所述應(yīng)用程序未截獲異常的處理裝置還包括:第一判斷模塊,用于判斷所述應(yīng)用程序重啟的次數(shù)是否大于預(yù)置值;所述處理模塊具體用于,當(dāng)所述應(yīng)用程序重啟的次數(shù)大于預(yù)置值時(shí),根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并結(jié)束當(dāng)前應(yīng)用程序的啟動(dòng);當(dāng)所述應(yīng)用程序重啟的次數(shù)小于等于預(yù)置值時(shí),執(zhí)行所述根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并重啟所述應(yīng)用程序的操作。優(yōu)選地,所述應(yīng)用程序未截獲異常的處理裝置還包括:清空模塊,用于清空重啟所述應(yīng)用程序前所述應(yīng)用程序所占用的資源。優(yōu)選地,所述應(yīng)用程序未截獲異常的處理裝置還包括:第二判斷模塊,用于判斷啟動(dòng)應(yīng)用程序至獲取到異常信息之間的時(shí)間差是否小于預(yù)置時(shí)間;所述處理模塊具體用于,當(dāng)所述時(shí)間差小于預(yù)置時(shí)間時(shí),等待所述應(yīng)用程序啟動(dòng)時(shí)間達(dá)到預(yù)置時(shí)間時(shí),執(zhí)行所述根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并重啟所述應(yīng)用程序的操作;當(dāng)所述時(shí)間差大于等于預(yù)置時(shí)間時(shí),直接執(zhí)行所述根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并重啟所述應(yīng)用程序的操作。優(yōu)選地,所述應(yīng)用程序未截獲異常的處理裝置還包括未截獲異常處理模塊,用于通過Android的commonInit機(jī)制配置異常處理程序,并在所述異常處理程序中,通過調(diào)用handleApplicationCrash函數(shù)進(jìn)行應(yīng)用程序異常處理。本發(fā)明通過獲取應(yīng)用程序未截獲的異常信息,并根據(jù)該異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,同時(shí)通過控制應(yīng)用程序自動(dòng)重啟。因此降低了因應(yīng)用程序運(yùn)行出錯(cuò)而出現(xiàn)錯(cuò)誤提示對話框給用戶帶來的繁瑣操作,同時(shí)有效保證了應(yīng)用程序啟動(dòng)過程中不存在間斷,從而有效提高用戶的體驗(yàn)度。附圖說明圖1為本發(fā)明應(yīng)用程序未截獲異常的處理方法第一實(shí)施例的流程示意圖;圖2為本發(fā)明應(yīng)用程序未截獲異常的處理方法第二實(shí)施例的流程示意圖;圖3為本發(fā)明應(yīng)用程序未截獲異常的處理方法第三實(shí)施例的流程示意圖;圖4為本發(fā)明應(yīng)用程序未截獲異常的處理方法第四實(shí)施例的流程示意圖;圖5為本發(fā)明應(yīng)用程序未截獲異常的處理裝置一實(shí)施例的結(jié)構(gòu)示意圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。具體實(shí)施方式應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明提供一種應(yīng)用程序未截獲異常的處理方法。參照圖1,圖1為本發(fā)明應(yīng)用程序未截獲異常的處理方法第一實(shí)施例的流程示意圖。本實(shí)施例提供的應(yīng)用程序未截獲異常的處理方法包括以下步驟:步驟S10,當(dāng)應(yīng)用程序運(yùn)行時(shí),獲取應(yīng)用程序未截獲的異常信息;本實(shí)施例中,上述應(yīng)用程序?yàn)榘沧坎僮飨到y(tǒng)中的應(yīng)用程序,Android平臺(tái)在應(yīng)用進(jìn)程創(chuàng)建后,將為虛擬機(jī)設(shè)置一未截獲異常處理模塊。當(dāng)用戶點(diǎn)擊相應(yīng)的應(yīng)用程序時(shí),相應(yīng)的應(yīng)用程序?qū)⒈贿\(yùn)行,此時(shí)若存在應(yīng)用程序未截獲的異常信息時(shí),應(yīng)用進(jìn)程將拋出應(yīng)用程序未截獲的異常信息至未截獲異常處理模塊。例如,當(dāng)Android內(nèi)存溢出時(shí),應(yīng)用進(jìn)程將拋出OOM異常。值得說明的是,操作系統(tǒng)底層包括基本異常捕獲的機(jī)制,本方案在于對操作系統(tǒng)的異常捕獲機(jī)制進(jìn)行完善。步驟S20,根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并重啟所述應(yīng)用程序。本實(shí)施例中,上述提示信息為應(yīng)用程序因上述異常信息所產(chǎn)生的提示信息,例如,當(dāng)Android內(nèi)存溢出時(shí),將通過對話框的形式提示用戶當(dāng)前運(yùn)行的內(nèi)存不足等提示信息。當(dāng)上述未截獲異常處理模塊接收到上述異常信息后,將屏蔽應(yīng)用程序產(chǎn)生的提示信息,并控制應(yīng)用程序自動(dòng)重啟或做其他處理。在本實(shí)施例中,可通過修改Android底層源碼,通過Android的commonInit機(jī)制配置異常處理程序,并設(shè)置在所述異常處理程序中處理應(yīng)用程序異常。具體地,通過重寫其應(yīng)用程序異常處理程序,調(diào)用ActivityManagerService的handleApplicationCrash函數(shù)進(jìn)行異常處理。從而實(shí)現(xiàn)在操作系統(tǒng)底層實(shí)現(xiàn)應(yīng)用程序異常的捕捉與處理。本發(fā)明通過獲取應(yīng)用程序未截獲的異常信息,并根據(jù)該異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,同時(shí)通過控制應(yīng)用程序自動(dòng)重啟。因此降低了因應(yīng)用程序運(yùn)行出錯(cuò)而出現(xiàn)錯(cuò)誤提示對話框給用戶帶來的繁瑣與不友好,同時(shí)有效保證了應(yīng)用程序啟動(dòng)過程中不存在間斷,從而有效提高用戶的體驗(yàn)度。參照圖2,圖2為本發(fā)明應(yīng)用程序未截獲異常的處理方法第二實(shí)施例的流程示意圖。本實(shí)施例中,在執(zhí)行上述步驟S20之前還包括:步驟S30,判斷所述應(yīng)用程序重啟的次數(shù)是否大于預(yù)置值;若是則執(zhí)行步驟S40,否則執(zhí)行步驟S20;步驟S40,根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并結(jié)束當(dāng)前應(yīng)用程序的啟動(dòng)。優(yōu)選地,在該步驟還可以生成操作系統(tǒng)統(tǒng)一的異常提示信息,并提示用戶,或者做其他處理。本實(shí)施例中,上述預(yù)置值的大小可根據(jù)實(shí)際需要進(jìn)行設(shè)置,在此不作進(jìn)一步的限定。以預(yù)置值是10為例,通過定義一數(shù)值變量,在應(yīng)用程序每次重啟時(shí),該數(shù)值變量都加1,通過判斷該數(shù)值大小是否大于10從而判定應(yīng)用程序重啟的次數(shù)是否大于10。當(dāng)應(yīng)用程序重啟的次數(shù)小于等于10時(shí),則將應(yīng)控制用程序重啟;當(dāng)應(yīng)用程序重啟的次數(shù)大于10時(shí),則退出當(dāng)前應(yīng)用程序的啟動(dòng),返回至上一操作界面(即運(yùn)行應(yīng)用程序的前一操作界面,可以為上一應(yīng)用程序界面,也可以為桌面)。本實(shí)施例中,通過對重啟的操作次數(shù)進(jìn)行限制,因此可有效避免因應(yīng)用程序無法正常啟動(dòng)而導(dǎo)致其他應(yīng)用程序的運(yùn)行,從而保證了應(yīng)用程序運(yùn)行的穩(wěn)定性。參照圖3,圖3為本發(fā)明應(yīng)用程序未截獲異常的處理方法第三實(shí)施例的流程示意圖?;谏鲜鰧?shí)施例,本實(shí)施例中,在執(zhí)行所述步驟S20之后還包括:步驟S50,清空重啟所述應(yīng)用程序前所述應(yīng)用程序所占用的資源。本實(shí)施例中,上述資源包括Activity和Service中的內(nèi)容。由于對資源進(jìn)行清空處理,因此可提高應(yīng)用程序運(yùn)行的速度,有利于保證操作系統(tǒng)的正常高效運(yùn)行。參照圖4,圖4為本發(fā)明應(yīng)用程序未截獲異常的處理方法第四實(shí)施例的流程示意圖?;谏鲜鰧?shí)施例,本實(shí)施例中,在執(zhí)行所述步驟S20之前還包括:步驟S60,判斷啟動(dòng)應(yīng)用程序至獲取到異常信息之間的時(shí)間差是否小于預(yù)置時(shí)間;若是則執(zhí)行步驟S70,否則執(zhí)行步驟S20;步驟S70,等待所述應(yīng)用程序啟動(dòng)時(shí)間達(dá)到預(yù)置時(shí)間時(shí),執(zhí)行所述步驟S20。本實(shí)施例中,上述預(yù)置時(shí)間可根據(jù)實(shí)際需要進(jìn)行設(shè)置,以下以預(yù)置時(shí)間為1分鐘作出詳細(xì)說明。在應(yīng)用程序啟動(dòng)時(shí),開啟計(jì)時(shí)器對應(yīng)用程序啟動(dòng)的時(shí)間進(jìn)行計(jì)時(shí),當(dāng)從應(yīng)用程序啟動(dòng)開始到上述未截獲異常處理模塊獲取到異常信息的時(shí)間差小于1分鐘時(shí),則將進(jìn)行延時(shí)等待,直到應(yīng)用程序啟動(dòng)時(shí)間到達(dá)1分鐘時(shí),則執(zhí)行根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并重啟所述應(yīng)用程序的操作;當(dāng)從應(yīng)用程序啟動(dòng)開始到上述未截獲異常處理模塊獲取到異常信息的時(shí)間差大于等于1分鐘時(shí),則直接執(zhí)行根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并重啟所述應(yīng)用程序的操作。本發(fā)明還提供一種應(yīng)用程序未截獲異常的處理裝置,用于實(shí)現(xiàn)上述方法。參照圖5,圖5為本發(fā)明應(yīng)用程序未截獲異常的處理裝置一實(shí)施例的結(jié)構(gòu)示意圖。本實(shí)施例提供的應(yīng)用程序未截獲異常的處理裝置包括:獲取模塊100,用于當(dāng)應(yīng)用程序運(yùn)行時(shí),獲取應(yīng)用程序未截獲的異常信息;本實(shí)施例中,上述應(yīng)用程序?yàn)榘沧坎僮飨到y(tǒng)中的應(yīng)用程序,Android平臺(tái)在應(yīng)用進(jìn)程創(chuàng)建后,將為虛擬機(jī)設(shè)置一未截獲異常處理模塊600。當(dāng)用戶點(diǎn)擊相應(yīng)的應(yīng)用程序時(shí),相應(yīng)的應(yīng)用程序?qū)⒈贿\(yùn)行,此時(shí)若存在應(yīng)用程序未截獲的異常信息時(shí),應(yīng)用進(jìn)程將拋出應(yīng)用程序未截獲的異常信息至未截獲異常處理模塊600,由該未截獲異常處理模塊將該異常信息輸出至獲取模塊100。例如,當(dāng)Android內(nèi)存溢出時(shí),應(yīng)用進(jìn)程將拋出OOM異常。值得說明的是,操作系統(tǒng)底層包括基本異常捕獲的機(jī)制,本方案在于對操作系統(tǒng)的異常捕獲機(jī)制進(jìn)行完善。處理模塊200,用于根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并重啟所述應(yīng)用程序。本實(shí)施例中,上述提示信息為應(yīng)用程序因上述異常信息所產(chǎn)生的提示信息,例如,當(dāng)Android內(nèi)存溢出時(shí),將通過對話框的形式提示用戶當(dāng)前運(yùn)行的內(nèi)存不足等提示信息。當(dāng)上述獲取模塊100獲取到上述異常信息后,將輸出一控制信號(hào)至處理模塊200,處理模塊200將根據(jù)該控制信號(hào)屏蔽應(yīng)用程序產(chǎn)生的提示信息,并控制應(yīng)用程序自動(dòng)重啟或做其他處理。應(yīng)當(dāng)說明的是,在本實(shí)施例中,可通過修改Android底層源碼,通過Android的commonInit機(jī)制配置異常處理程序,并設(shè)置在所述異常處理程序中處理應(yīng)用程序異常。具體地,通過重寫其應(yīng)用程序異常處理程序,調(diào)用ActivityManagerService的handleApplicationCrash函數(shù)進(jìn)行異常處理。從而實(shí)現(xiàn)在操作系統(tǒng)底層實(shí)現(xiàn)應(yīng)用程序異常的捕捉與處理。本發(fā)明通過獲取模塊100獲取應(yīng)用程序未截獲的異常信息,并根據(jù)該異常信息輸出控制信號(hào)至處理模塊200,供處理模塊200根據(jù)該控制信號(hào)屏蔽應(yīng)用程序產(chǎn)生的提示信息,同時(shí)通過控制應(yīng)用程序自動(dòng)重啟。因此防止了因應(yīng)用程序運(yùn)行出錯(cuò)而出現(xiàn)錯(cuò)誤提示對話框給用戶帶來的繁瑣與不友好,同時(shí)有效保證了應(yīng)用程序啟動(dòng)過程中不存在間斷,從而有效提高用戶的體驗(yàn)度。進(jìn)一步地,基于上述實(shí)施例,本實(shí)施例中,上述應(yīng)用程序未截獲異常的處理裝置還包括:第一判斷模塊300,用于判斷所述應(yīng)用程序重啟的次數(shù)是否大于預(yù)置值;所述處理模塊200具體用于,當(dāng)所述應(yīng)用程序重啟的次數(shù)大于預(yù)置值時(shí),根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并結(jié)束當(dāng)前應(yīng)用程序的啟動(dòng);當(dāng)所述應(yīng)用程序重啟的次數(shù)小于等于預(yù)置值時(shí),執(zhí)行所述根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并重啟所述應(yīng)用程序的操作。本實(shí)施例中,上述預(yù)置值的大小可根據(jù)實(shí)際需要進(jìn)行設(shè)置,在此不作進(jìn)一步的限定。以預(yù)置值是10為例,通過定義一數(shù)值變量,在應(yīng)用程序每次重啟時(shí),該數(shù)值變量都加1,上述第一判斷模塊300通過判斷該數(shù)值大小是否大于10從而判定應(yīng)用程序重啟的次數(shù)是否大于10,并將判斷的結(jié)果輸出至處理模塊200,供處理模塊200執(zhí)行相應(yīng)的操作。當(dāng)應(yīng)用程序重啟的次數(shù)小于等于10時(shí),則上述處理模塊200將應(yīng)用程序重啟;當(dāng)應(yīng)用程序重啟的次數(shù)大于10時(shí),則退出當(dāng)前應(yīng)用程序的啟動(dòng),返回至上一操作界面(即運(yùn)行應(yīng)用程序的前一操作界面,可以為上一應(yīng)用程序界面,也可以為桌面)。本實(shí)施例中,通過對重啟的操作次數(shù)進(jìn)行限制,因此可有效避免因應(yīng)用程序無法正常啟動(dòng)而導(dǎo)致其他應(yīng)用程序的運(yùn)行,從而保證了應(yīng)用程序運(yùn)行的穩(wěn)定性。進(jìn)一步地,基于上述實(shí)施例,本實(shí)施例中,上述應(yīng)用程序未截獲異常的處理裝置還包括:清空模塊400,用于清空重啟所述應(yīng)用程序前所述應(yīng)用程序所占用的資源。本實(shí)施例中,上述資源包括Activity和Service中的內(nèi)容。由于對資源進(jìn)行清空處理,因此可提高應(yīng)用程序運(yùn)行的速度,有利于保證應(yīng)用程序的正常運(yùn)行。進(jìn)一步地,基于上述實(shí)施例,本實(shí)施例中,上述應(yīng)用程序未截獲異常的處理裝置還包括:第二判斷模塊500,用于判斷啟動(dòng)應(yīng)用程序至獲取到異常信息之間的時(shí)間差是否小于預(yù)置時(shí)間;所述處理模塊200具體用于,當(dāng)所述時(shí)間差小于預(yù)置時(shí)間時(shí),等待所述應(yīng)用程序啟動(dòng)時(shí)間達(dá)到預(yù)置時(shí)間時(shí),執(zhí)行所述根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并重啟所述應(yīng)用程序的操作;當(dāng)所述時(shí)間差大于等于預(yù)置時(shí)間時(shí),直接執(zhí)行所述根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并重啟所述應(yīng)用程序的操作。本實(shí)施例中,上述預(yù)置時(shí)間可根據(jù)實(shí)際需要進(jìn)行設(shè)置,以下以預(yù)置時(shí)間為1分鐘作出詳細(xì)說明。在應(yīng)用程序啟動(dòng)時(shí),開啟計(jì)時(shí)器對應(yīng)用程序啟動(dòng)的時(shí)間進(jìn)行計(jì)時(shí),當(dāng)?shù)诙袛嗄K500判定從應(yīng)用程序啟動(dòng)開始到上述獲取模塊100獲取到異常信息的時(shí)間差小于1分鐘時(shí),則輸出控制信號(hào)至處理模塊200,以供處理模塊200進(jìn)行延時(shí)等待,直到應(yīng)用程序啟動(dòng)時(shí)間到達(dá)1分鐘時(shí),由處理模塊200執(zhí)行根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并重啟所述應(yīng)用程序的操作;當(dāng)?shù)诙袛嗄K500判定從應(yīng)用程序啟動(dòng)開始到上述獲取模塊100獲取到異常信息的時(shí)間差大于等于1分鐘時(shí),則輸出控制信號(hào)至處理模塊200,以供處理模塊200直接執(zhí)行根據(jù)獲取到的異常信息屏蔽應(yīng)用程序產(chǎn)生的提示信息,并重啟所述應(yīng)用程序的操作。以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1