簡體   English   中英

意圖過濾器 android 如果應用程序正在運行則重新啟動應用程序

[英]intent-filter android restart app if app running

我正在編寫一個使用串行端口的應用程序。

這就是我的 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 設備時,智能手機提示我使用 select 我的默認應用程序。

我允許使用它並記住選擇。

但是如果我在應用程序運行時切換 usb 設備,那么當連接時,應用程序將重新啟動......

如何避免這種情況?

我期待以下行為。

  1. 如果應用程序未運行,則在連接時啟動

  2. 如果應用程序正在運行,那么在連接后,應用程序會繼續工作,但會收到有關連接的通知。

將 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM