我正在使用 IntentIntegrator 启动扫描仪(QR/条码 - zxing)应用程序。我需要在启动 30 秒后关闭扫描仪应用程序。
扫描仪应用程序通过 startActivityForResult 调用。我想知道是否有办法获取由“startActivityForResult”启动的 Activity 的引用,这样我就可以使用计时器并关闭 Activity 。
Android 专家,请在这里帮助我。
最佳答案
我认为您唯一的选择是修改 ZXing 代码。
当您开始扫描 Activity 时,您应用的 Activity 将转到 onPause(),此时您需要取消计时器,而不是启动新计时器。
另一个想法可能是启动一个服务,该服务启动一个线程,该线程会在 30 秒后终止扫描 Activity ……但是,唉,您无法从服务中终止 Activity 。
ZXing 是开源的,因此您可以将其拉下、修改和重建。有一个名为 InactivityTimer.java 的类,可以对其进行修改以在 x 秒后完成 Activity 。另一种选择可能是将广播接收器添加到扫描 list 中,它将在收到特定 Intent 时完成扫描 Activity 。
基本上,您的包只能在其 list 中定义 finish() Activity 。它无法终止其他包中的 Activity ...由用户或该应用决定何时完成。
关于android - 超时后关闭扫描仪应用程序/Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24319216/