连接 OTG 设备时调用的 Activity onCreate()

Her*_*man 3 android usb-otg android-usb

我正在开发一个使用 OTG USB 设备的应用程序。

我使用的设备是一个 USB 条形码扫描仪,它被 android 检测为键盘。

但是我检测到每次插入或拔出OTG设备时,都会通过调用Activity onCreate()方法重新启动App。

这给我带来了很多问题,因为我无法检测为什么调用 onCreate() 方法。

当 otg 设备插入/拔出时,是否有任何 Intent 或任何可以被触发和被捕获的东西?

提前致谢。

Mik*_*ike 9

由于配置更改,android 正在重新启动您的活动,请参阅此处的文档。

为确保这是您尝试添加android:configChanges="keyboard"到清单文件中的活动条目的情况。这将告诉 android 在插入键盘时不要重新启动 Activity。之后,onCreate()插入设备时不应再调用。

请注意,您不应该将其用作修复程序,这只是确保您是这种情况的一种方法(并且它不是您代码中的特定内容)。您必须处理活动重新启动,因为这是 android 中的正常行为,不应导致您的应用程序出现问题。Activity 重新启动的一个常见原因是方向更改,并且非常不鼓励使用上述方法来解决它,当 android 想要重新启动它时,您的 Activity 应该没有任何问题,请参阅答案以获取更多信息。