1. 程式人生 > >關於安卓zxing二維碼在掃碼時出現閃退的一點心得

關於安卓zxing二維碼在掃碼時出現閃退的一點心得

        是這樣的,我最近手頭接了個專案,給一個掃碼機編寫一個APP,裡面有用到二維碼掃描解析的功能,就用了zxing的庫,準確的說是參考了 yipianfengye 大佬的文章和專案。當時有遇到個奇怪的現象,在使用中APP會出現閃退的現象。我當時是用的大佬專案中的CaptureFragment巢狀進首頁實現不跳轉頁面直接掃描的功能,但使用時居然出現了閃退。後來總結了閃退規律,大約是5分鐘左右。然後又呼叫掃碼機自帶的掃碼頁面,發現也是5分鐘左右退出,於是估計是掃碼控制元件裡相關的設定應該有個類似跳出的設定,遂翻閱原始碼。果然在其中發現有個InactivityTimer類,裡面有個5分鐘後關閉當前掃碼Activity的設定。由於我是將CaptureFragment巢狀進的根activity,所以造成了閃退一樣的效果,在log中還找不到相關的資訊,因為這不是BUG。

        關於這個情況,我當時在網上找了很久,都沒找到有相關說明的文章,那我就把我發現的這一情況寫出來,可供參考。

       PS.幸好我是將原始碼複製出來用的,不然改都沒法改

       PS2.順便說一下,若要實現連續掃碼功能,可將CaptureActivityHandler中的restartPreviewAndDecode方法改為public,然後呼叫即可。該方法能在一次成功掃碼後呼叫,最好在上一次掃碼結束後寫個時間間隔再呼叫,避免重複掃碼。

        文中說到的各個類都出自yipianfengye 大佬的專案,在此感謝。