[發(fā)明專利]功能類使用Handler進行消息處理的方法和裝置有效
| 申請?zhí)枺?/td> | 201710625364.2 | 申請日: | 2017-07-27 |
| 公開(公告)號: | CN107515792B | 公開(公告)日: | 2020-11-10 |
| 發(fā)明(設(shè)計)人: | 王永川 | 申請(專利權(quán))人: | 北京五八信息技術(shù)有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京同立鈞成知識產(chǎn)權(quán)代理有限公司 11205 | 代理人: | 楊貝貝;劉芳 |
| 地址: | 100083 北京市海淀區(qū)學清*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 功能 使用 handler 進行 消息 處理 方法 裝置 | ||
本發(fā)明實施例提供一種功能類使用Handler進行消息處理的方法和裝置。本發(fā)明功能類使用Handler進行消息處理的方法,包括:所述功能類接收業(yè)務處理請求消息;所述功能類通過第一Handler類和第二Handler類對所述業(yè)務處理請求消息進行處理;其中,所述第二Handler類弱引用所述第一Handler類,所述第二Handler類為原生Handler的子類。本發(fā)明實施例以簡單的方式實現(xiàn)原生Handler到功能類的可達路徑為弱可達,有效避免直接使用原生Handler導致功能類內(nèi)存泄漏的問題,降低APP的崩潰率和OOM問題。
技術(shù)領(lǐng)域
本發(fā)明實施例涉及計算機技術(shù),尤其涉及一種功能類使用Handler進行消息處理的方法和裝置。
背景技術(shù)
消息處理程序(Handler)是安卓(Android)開發(fā)者進行消息傳遞的常用應用程序編程接口(Application Programming Interface,API),其主要用于異步消息的處理,當發(fā)出一個消息之后,首先進入一個消息隊列,發(fā)送消息的函數(shù)即刻返回,而另外一個部分在消息隊列中逐一將消息取出,然后對消息進行處理。然而隨著開發(fā)者的使用不當或者不謹慎很容易引起內(nèi)存泄漏問題,嚴重時會造成幾MB的內(nèi)存空間被占用,從而提高了內(nèi)存溢出(Out Of Memory,OOM)的發(fā)生概率和應用程序(Application,APP)的崩潰概率。
為了避免在使用Handler引起的內(nèi)存泄漏問題,可以在用戶接口程序(Activity)中避免使用非靜態(tài)內(nèi)部類,將Handler聲明為靜態(tài)的,其存活期跟Activity的生命周期就無關(guān)了。同時通過弱引用的方式引入Activity,避免直接將Activity作為Context傳入Handler,即使用靜態(tài)內(nèi)部類加弱引用(WeakReference)的方式。
然而,上述使用靜態(tài)內(nèi)部類加WeakReference的實現(xiàn)方式過于復雜,需要在每個使用Handler的地方都要聲明一個靜態(tài)內(nèi)部類,如果需要多個Handler進行消息傳遞就需要聲明多個,然后逐一進行實例化并且每次使用前判空,失去了原生Handler的簡約性。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種功能類使用Handler進行消息處理的方法和裝置,以簡單的方式實現(xiàn)原生Handler到功能類的可達路徑為弱可達,有效避免直接使用原生Handler導致功能類內(nèi)存泄漏的問題,降低APP的崩潰率和OOM問題。
第一方面,本發(fā)明實施例提供一種功能類使用Handler進行消息處理的方法,包括:
所述功能類接收業(yè)務處理請求消息;
所述功能類通過第一Handler類和第二Handler類對所述業(yè)務處理請求消息進行處理;
其中,所述第二Handler類弱引用所述第一Handler類,所述第二Handler類為原生Handler的子類。
結(jié)合第一方面,在第一方面的一種可能的實現(xiàn)方式中,所述功能類接收業(yè)務處理請求消息之前,所述方法還包括:
創(chuàng)建所述第一Handler類,所述第一Handler類的屬性包括調(diào)用所述第二Handler類。
結(jié)合第一方面或者第一方面任一種可能的實現(xiàn)方式,在第一方面的另一種可能的實現(xiàn)方式中,所述功能類接收業(yè)務處理請求消息之前,所述方法還包括:
創(chuàng)建所述第二Handler類,所述第二Handler類繼承所述原生Handler類的所有屬性和所有消息處理方法,且所述第二Handler類的屬性還包括弱引用所述第一Handler類。
結(jié)合第一方面或者第一方面任一種可能的實現(xiàn)方式,在第一方面的另一種可能的實現(xiàn)方式中,所述第一Handler類和所述第二Handler類的可見性均為私有。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京五八信息技術(shù)有限公司,未經(jīng)北京五八信息技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710625364.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





