我正在编写一个使用串行端口的应用程序。
这是我的XML的样子
<application>
...
<activity>
...
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
</activity>
</application>
连接usb设备时,智能手机提示我选择默认应用程序。
我允许使用它,并记住选择。
但是如果我在应用程序运行时切换usb设备,那么当连接时,应用程序将重新启动…
如何避免这种情况?
我期待以下行为。
如果应用程序没有运行,那么当连接时,它启动
如果应用程序正在运行,那么当连接时,应用程序继续工作,但会收到有关连接的通知。
添加android:launchMode="singleTop"属性设置为关联的活动
<application>
...
<activity>
...
android:launchMode="singleTop"
...
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
</activity>
</application>