【问题标题】:Receive custom intent without activity restart无需重新启动活动即可接收自定义意图
【发布时间】:2012-06-27 11:59:22
【问题描述】:

我有一个带有一些链接的TextView(推特风格):

Pattern pattern1 = Pattern.compile("@\\w+");
Linkify.addLinks(textView, pattern1, "my_activity://one=");
Pattern pattern2 = Pattern.compile("#\\w+");
Linkify.addLinks(textView, pattern2, "my_activity://two=");

在清单中声明的​​活动具有以下意图过滤器:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />

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

    <data android:scheme="my_activity" />
</intent-filter>

Intent 被 Activity 的 onNewIntent 方法捕获,但在此之前该 Activity 被重新启动(我认为这是默认行为)。

有没有办法在不重新启动活动的情况下接收此类意图?

【问题讨论】:

  • activity的launchMode是什么?从清单中发布整个 标记
  • 抱歉耽搁了 - 启动模式是默认的。通过将启动模式设置为singleInstance(singleTask 也应该可以)解决了这个问题。
  • 你能创建一个答案并接受它吗?否则,这最终会出现在“未回答的问题”列表中。您不应该使用singleInstance,因为它仅用于主屏幕替换。实际上,您应该尝试singleTop。这对于您正在尝试做的事情应该足够了。
  • 不知道singleInstance 的细微差别。您可以添加您的最后一条评论作为答案吗?我会接受的:)
  • 完成。谢谢。让我知道 singleTop 是否有效。

标签: java android xml android-intent linkify


【解决方案1】:

看起来launchMode 是问题所在。您不应该使用singleInstance,因为这仅用于主屏幕替换。你应该试试singleTop。这对于您正在尝试做的事情应该足够了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    相关资源
    最近更新 更多