Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在特定任务中使用NFC启动活动_Android_Android Intent_Nfc - Fatal编程技术网

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

Android 在特定任务中使用NFC启动活动,android,android-intent,nfc,Android,Android Intent,Nfc,我的应用程序包含许多活动。其中一个活动响应NFC意图过滤器以及标准意图,但是,此活动在其自己的任务中启动,而不是在与应用程序相同的任务中启动。当NFC意图启动时,应用程序不一定在运行,但如果是,我希望活动在同一任务中启动,以确保无缝的用户体验。目前,该应用程序的运行方式似乎有两个应用程序正在运行 以下是我的NFC活动清单: <activity android:name="name.subname.app.activity.ItemSummaryActivity"

我的应用程序包含许多活动。其中一个活动响应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) 将android:launchMode=“singleTask”添加到清单中的活动标记:

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

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


2) 为
startActivity()
intent提供标志。但是,如果这个活动是由NFC触发的(并且使用这个选项是不可行的),考虑一下该怎么说。< /P>添加<代码> Android:启动模式=“StuttLASK”<代码>到活动标签。或者,您也可以提供
Intent.FLAG\u ACTIVITY\u FRONT\u
FLAG到您的
startActivity()
Intent您在谈论主机卡模拟吗?如果是,则可以删除
,这样它就不会从单独的任务开始。然后,您可以在清单中注册服务,这样就不需要从“活动”运行服务。A会处理好的。嘿,鞋鼠,谢谢!回答这个问题,我会打勾的!:)