3

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

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

但是我检测到每次插拔OTG设备,都会调用Activity的onCreate()方法重启App。

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

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

提前致谢。

4

1 回答 1

9

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

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

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

于 2016-04-16T03:09:31.823 回答