我有一个通过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" />
这解决了一半的问题!应用程序不再启动两次,但每次设备连接/断开连接时对话框仍会出现。也许这只是如果我想要那里的自动启动能力,事情必须如何运作。 – Brian 2013-03-04 16:57:06
@brianv是一个选择器对话框?可能没有设置默认应用程序。 – Phil 2013-03-04 17:10:10
当我连接设备时,会出现对话框。在对话框的顶部是我的应用程序的图标以及名称。该框中的消息显示“此USB设备连接时打开AppName?”然后有一个复选框“默认使用此USB设备” – Brian 2013-03-04 17:15:16