不重新启动活动即可接收自定义意图

4

我有一个包含链接的TextView(类似于Twitter风格):

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会重新启动(我认为这是默认行为)。

有没有一种方法可以接收这样的Intent而不重新启动Activity?


活动的启动模式是什么?请在您的清单文件中发布整个<activity>标记。 - David Wasser
抱歉耽搁了 - 启动模式是默认的。通过将启动模式设置为singleInstancesingleTask也可以),问题得到解决。 - Mykhailo Gaidai
你能创建一个答案并接受它吗?否则,这将出现在“未回答的问题”列表中。你不应该使用 singleInstance,因为那只适用于 HOME 屏幕替换。实际上,你应该尝试使用 singleTop。对于你想要做的事情来说,那应该已经足够了。 - David Wasser
不知道 singleInstance 的细微差别。你能把你最后的评论加入回答中吗?我会接受它 :) - Mykhailo Gaidai
完成了。谢谢。如果 singleTop 起作用,请告诉我。 - David Wasser
1个回答

4

看起来 launchMode 是问题所在。你不应该使用 singleInstance,因为它只适用于 HOME 屏幕替换。你应该尝试使用 singleTop。这对于你想要实现的功能应该足够了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接