在特定任务中使用NFC启动活动

时间:2013-12-08 09:13:10

标签: android android-intent nfc

我的应用包含许多活动。其中一个活动响应NFC意图过滤器以及标准意图,但是,此活动是在其自己的任务中启动,而不是与应用程序执行相同的任务。启动NFC意图时,应用程序不一定会运行,但如果是,我希望活动在同一任务中启动,以确保无缝的用户体验。目前,该应用程序表现得好像有两个正在运行。

以下是我的NFC活动的清单:

<activity
        android:name="name.subname.app.activity.ItemSummaryActivity"
        android:label="@string/title_activity_item_summary" >
        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />

            <data android:mimeType="application/vnd.name.nfcdemo" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>

是否可以在现有任务中启动活动(如果存在)?

1 个答案:

答案 0 :(得分:2)

我在这里看到两个选项:

1)将android:launchMode="singleTask"添加到清单中的活动标记:

<activity
        android:name="name.subname.app.activity.ItemSummaryActivity"
        android:label="@string/title_activity_item_summary"
        android:launchMode="singleTask" >

"singleTask"

  

系统在新任务的根目录下创建活动并将意图路由到该任务。但是,如果活动的实例已存在,系统会通过调用其onNewIntent()方法将意图路由到现有实例,而不是创建新实例。

2)向startActivity()意图提供Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT标志。但是,如果活动是由NFC触发的(并且使用此选项不可行),请考虑@NFC guy必须说here的内容。