我正在處理兩個不同的Android應用程序。管理USB主機註冊註銷
應用1:從USB NFC閱讀器 應用2讀取數據:將數據寫入USB NFC讀寫器
我可以管理所有的讀,寫的東西,以及在USB NFC讀寫器\寫的註冊\開幕。 問題是當我在這兩個應用程序之間切換時。
我在兩個應用程序的onStart()方法中提出了權限請求和registerReceiver。
protected void onStart() {
mPermissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(
Config.ACTION_USB_PERMISSION), 0);
filter = new IntentFilter();
filter.addAction(Config.ACTION_USB_PERMISSION);
registerReceiver(mReceiver, filter);
for (UsbDevice device : mManager.getDeviceList().values()) {
if (Config.mReader.isSupported(device)) {
mManager.requestPermission(device, mPermissionIntent);
}
}
super.onStart();
}
而且(在unregisterReceiver中的onStop)兩種使用方法:點擊主頁按鈕或後退按鈕
- 關閉應用1:
protected void onStop() { if (mReceiver != null) { try { Config.mReader.close(); unregisterReceiver(mReceiver); } catch (Exception e) { Utils.log("error"); } } super.onStop(); }
如果我執行此操作和
- 打開應用程序2
一切正常。
如果我使用show application stack按鈕 ,它看起來像Application1在Application2的onStart()方法之前無法執行onStop()方法,導致Application1或Application1都無法控制USB Reader。
我是否完全錯了?
爲什麼你需要兩個應用程序? – ThomasRS
@ThomasRS爲了解如何正確管理USB主機註冊\註銷 – Federico