当前位置: 首页 > 知识库问答 >
问题:

如何使多个意图过滤器在同一任务中启动一个活动

隆安然
2023-03-14

我有两个用于应用程序的根活动的意图过滤器

<activity
    android:name=".MyActivity"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Dialog" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.nfc.action.NDEF_DISCOVERED" />
        <data android:mimeType="application/com.example.package" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

一个过滤器用于从启动器图标启动应用程序,另一个过滤器用于在用户触摸NFC标签时启动活动。

我希望当用户在应用程序的任何活动中按下HOME按钮时,下一次他按下启动器图标或触摸NFC标签时,应用程序必须恢复(每个应用程序都是如此)。

但这是正在发生的事情:当用户点击NFC标签时,第一个活动被启动。然后,他导航到进一步的活动。按回家。再次点击NFC标签,启动第一个活动(MyActivity ),并清除之前的堆栈。

另一方面,当用户选择启动程序图标,导航到其他活动,按下主页,然后再次按下启动程序图标时,MyActivity将作为堆栈顶部的新活动启动。(现在堆栈中有两个MyActivities)。

共有1个答案

司徒志
2023-03-14

您需要定义活动启动的方式。如果您希望活动总是在同一任务上启动,请使用:< code > Android:alwaysRetainTaskState = " true " 和< code > Android:task affinity = " your . task . name "

此外,请查看android:launchMode=“singleTop”android:launch mode=“singleTask”以进一步了解如何启动活动。

 类似资料:
  • 我正在开发一个连接到平板电脑时与USB设备通信的应用程序。为了避免用户接受android访问设备,我设置了一个意图过滤器: 我的问题是,有了这个意图过滤器,每次我插入设备并启动另一个活动时都会调用“onCreate”方法,如果没有意图过滤器,它只会被调用一次。这是“onCreate”方法: 广播接收机: 简单连接到设备的“setDevice”方法: 为什么?

  • 问题内容: 我对android非常陌生,我正在尝试将用户输入的数据(他们的名字)发送到另一个活动。过去,我可以使用Intent在活动之间发送单行代码,但是我无法解决如何向两个不同的TextView发送两个不同的字符串。 这是到目前为止我的MainActivity代码: 我第二项活动MainGame的代码: 当我运行它时,我得到了两个TextView中都为“ name2”添加的内容。我需要做些什么来

  • 问题内容: 我有一个过滤器linkifyStuff,其中需要使用其他过滤器处理一些变量。我无法弄清楚从另一个调用一个过滤器的语法。 我了解过滤器链接-这不是我想要的。我想将过滤器应用于linkifyStuff过滤器中的局部变量,而不是其输入或输出。 我希望像下面这样工作,但是$ filter(’filtername’)显然不是正确的语法。 我可以为sanitizeStuff和sanitizeStu

  • 我想把意图转移到Xamarin.Android中的另一个活动。基本上,我需要Intent.data和Intent.clipdata到另一个活动,所以我使用下面的代码来传输Intent,但我不知道检索它的正确方法。 下面是Main Activity中的代码 在第二活动中 如何在第二个活动中检索意图?

  • 我有一个活动,可以在收藏夹列表中添加书签。每个宠儿都有一个按钮。当我点击那个按钮时,我必须进入那个特定的活动。但它显示了一个错误。应用程序不会崩溃,但书签活动不会从单击开始。 以下是“收藏夹”活动的代码: 错误是onClick方法,具体如下: 它给我一个ClassNotFoundExc0019。 似乎有了这段代码,我就可以启动这个包中的活动了。但问题是,我想开始的活动在另一个包中。logcat说它

  • 在我的程序中,我有一个当应用程序打开时启动的活动。如果我再打开几个活动,我怎么能回到主活动?在意图过滤器中,活动的名称是“android.intent.action.MAIN”,它不允许我在上面调用start Active()。我该怎么办?