3

OTG USB デバイスを使用するアプリを開発しています。

私が使用しているデバイスは、アンドロイドによってキーボードとして検出される USB バーコードスキャナーです。

しかし、OTG デバイスを接続または切断するたびに、アクティビティの onCreate() メソッドを呼び出してアプリが再起動されることがわかりました。

onCreate() メソッドが呼び出されている理由を検出できないため、これは多くの問題を引き起こしています。

otg デバイスのプラグが差し込まれたり抜かれたりしたときに発火してキャッチできるインテントや何かはありますか?

前もって感謝します。

4

1 に答える 1

9

構成が変更されたため、Android がアクティビティを再開しています。こちらのドキュメントを参照してください。

これが当てはまることを確認するandroid:configChanges="keyboard"には、マニフェスト ファイルのアクティビティのエントリに追加してみてください。これにより、キーボードが接続されたときにアクティビティを再開しないように Android に指示されます。その後onCreate()、デバイスを接続したときに呼び出されないようにする必要があります。

これを修正として使用するべきではないことに注意してください。これは、これがあなたに当てはまることを確認するための単なる方法です(コード内の特定のものではありません)。アクティビティの再起動は Android の通常の動作であり、アプリケーションで問題が発生することはないため、対処する必要があります。アクティビティの再起動の一般的な原因の 1 つは向きの変更です。これを解決するために上記のアプローチを使用することはお勧めしません。Android が再起動したいときにアクティビティに問題はありません。詳細については、この回答を参照してください。

于 2016-04-16T03:09:31.823 に答える