我正在使用IntentIntegrator启动扫描程序(QR /条形码 - zxing)应用程序。我需要在启动30秒后关闭扫描仪应用程序。
通过startActivityForResult调用扫描程序应用程序。我想知道是否有办法获取“startActivityForResult”启动的活动的引用,这样,我可以使用计时器并关闭活动。
Android专家,请在这里帮助我。
答案 0 :(得分:1)
我认为你唯一的选择是修改ZXing代码。
当您开始扫描活动时,您应用的活动将转到onPause(),此时您需要取消定时器,而不是启动新定时器。
另一种想法可能是启动一项服务,该服务启动一个在30秒后杀死扫描活动的线程......但是,唉,你不能从服务中杀死一个活动。
ZXing是开源的,因此您可以将其下拉,修改并重建。有一个名为InactivityTimer.java的类,可以修改它以在x秒后完成活动。另一种选择可能是在扫描清单中添加广播接收器,以便在收到某个意图时完成扫描活动。
基本上,您的包只能完成()清单中定义的活动。它无法杀死其他软件包中的活动......由用户或该应用决定何时完成。