我有一个通过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" />
最佳答案
您需要将Activity
的launchMode
设置为singleTask
。可以通过在android清单中添加activity属性来执行此操作:
android:launchMode="singleTask"
有关详细信息,请参见documentation。