Android 阻止已运行的主活动启动

Android 阻止已运行的主活动启动,android,android-intent,android-activity,intentfilter,main-activity,Android,Android Intent,Android Activity,Intentfilter,Main Activity,我有一个应用程序是通过意图过滤器操作启动的。问题在于,每次事件/动作发生时,Android都会显示一个对话框,要求启动应用程序,即使它已经启动 我希望行为如下: 用户要求在应用未打开时启动应用 对话框不会显示应用程序是否正在前台运行 有没有办法实现这两个目标?我的目标是安卓4.0 编辑 以下是我的意向过滤器: <intent-filter> <action android:name="android.intent.action.MAI

我有一个应用程序是通过
意图过滤器
操作启动的。问题在于,每次事件/动作发生时,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" />


请求用户启动应用程序时使用标志。首次启用时设置标志,每次检查是否勾选此标志。例如
if(flag==1)askusertostart()else继续如果您清楚这一点?

您需要将
活动的
启动模式设置为
单个任务
。您可以通过在Android清单中添加activity属性来实现这一点:

android:launchMode="singleTask"

有关详细信息,请参阅。

不确定。我想首先阻止显示对话框,而不仅仅是不重新启动应用程序。我不是在调用对话框,安卓操作系统是在USB设备插入时启动的。它是根据意图过滤器和设备过滤器中提供的值(正确地)进行的。不管应用程序是否在运行,我都会这样做,这就是我需要改变的。授予使用该设备的权限可以在活动中临时手动完成,但我仍然希望在插入设备时显示对话框。我认为您还应该在
标记中配对连接的
USB\u设备。看看这是否有帮助。这解决了一半的问题!应用程序不再启动两次,但每次设备连接/断开连接时仍会显示对话框。如果我想要自动启动功能的话,也许这就是事情的运作方式。@brianv这是一个选择器对话框吗?可能没有设置默认应用程序。当我连接设备时,会出现对话框。对话框顶部是我的应用程序图标和名称。框中的消息显示“当此USB设备连接时打开AppName?”然后有一个复选框“默认使用此USB设备”我将尝试制作另一个应用程序,如果我有多个应用程序具有相同的设备筛选器,则查看是否会出现选择器对话框…当显示弹出窗口时,该对话框非常模糊@BrianV,注意一下,它问了同样的问题(你问题的第二部分),正在等待赏金。