是这样的,我最近手头接了个项目,给一个扫码机编写一个APP,里面有用到二维码扫描解析的功能,就用了zxing的库,准确的说是参考了 yipianfengye 大佬的文章和项目。当时有遇到个奇怪的现象,在使用中APP会出现闪退的现象。我当时是用的大佬项目中的CaptureFragment嵌套进首页实现不跳转页面直接扫描的功能,但使用时居然出现了闪退。后来总结了闪退规律,大约是5分钟左右。然后又调用扫码机自带的扫码页面,发现也是5分钟左右退出,于是估计是扫码控件里相关的设置应该有个类似跳出的设定,遂翻阅源码。果然在其中发现有个InactivityTimer类,里面有个5分钟后关闭当前扫码Activity的设置。由于我是将CaptureFragment嵌套进的根activity,所以造成了闪退一样的效果,在log中还找不到相关的信息,因为这不是BUG。
关于这个情况,我当时在网上找了很久,都没找到有相关说明的文章,那我就把我发现的这一情况写出来,可供参考。
PS.幸好我是将源码复制出来用的,不然改都没法改
PS2.顺便说一下,若要实现连续扫码功能,可将CaptureActivityHandler中的restartPreviewAndDecode方法改为public,然后调用即可。该方法能在一次成功扫码后调用,最好在上一次扫码结束后写个时间间隔再调用,避免重复扫码。
文中说到的各个类都出自yipianfengye 大佬的项目,在此感谢。