如果已经运行,则阻止启动主要活动

Bri*_*ian 5 android intentfilter android-intent main-activity android-activity

我有一个通过intent-filter动作启动的应用程序.问题是每次事件/操作发生时,Android都会显示一个对话框,要求即使它已经启动也要启动它.

我希望行为如下:

  • 如果应用未打开,用户会要求启动该应用.
  • 如果应用程序在前台运行,则不显示对话框.

有没有办法实现这两个目标?我的目标是Android 4.0.

编辑

这是我的意图过滤器:

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

       <intent-filter>
            <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
        </intent-filter>

       <meta-data
            android:name="android.hardware.usb.action.USB_DEVICE_DETACHED"
            android:resource="@xml/device_filter" />
Run Code Online (Sandbox Code Playgroud)

Phi*_*hil 9

你需要将Activity's 设置launchModesingleTask.您可以通过在Android Manifest中添加activity属性来执行此操作:

android:launchMode="singleTask"
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档.