使用唯一标识符启动多个相同活动实例的重复活动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用唯一标识符启动多个相同活动实例的重复活动相关的知识,希望对你有一定的参考价值。

我正在构建一个聊天客户端并与每个用户聊天打开相同的活动ChatActivity传递一个用户名作为意图额外的像这样。

Intent.putExtra("user", username);

用户名是您正在聊天的用户名。发送额外信息后,ChatAcitivity将打开,处理额外的用户名并相应地工作。现在,如果我一次与多个用户聊天,比如user1和user2,每次活动重新开始处理数据。如何保持与用户的聊天并打开已初始化的活动,以减少对服务器和用户的负载。

我想要一些东西来识别需要打开的意图,比如与user1聊天将user1 ChatActivity带到前面,所以我可以使用:

resultIntent.setFlags(Intent.FLAG_ACTIVITY_USER1ACTIVITY_BROUGHT_TO_FRONT_);

或称之为的东西。

我怎样才能做到这一点??

答案

我知道您希望拥有ChatActivity的“重复”实例,每个用户一个。您可以使用FLAG_ACTIVITY_NEW_DOCUMENT标志,该文档是与特定用户的对话:

    // the URI is used as a document ID
    // a stack / activity with the same id will be reused
    // and the intent passed to onNewIntent()
    // otherwise a new activity is created
    startIntent.setData(Uri.parse("http://my.domain.net/users/" + username));
    startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);

请注意,每个对话在“最近”屏幕(“概述”屏幕)中都有自己的条目。这可能是也可能不是你想要的。

以上是关于使用唯一标识符启动多个相同活动实例的重复活动的主要内容,如果未能解决你的问题,请参考以下文章

查找唯一标识符重复的每个字段的最大序列号

尝试在Android中使用按钮启动多个活动[重复]

对所有 AWS Data Pipeline 活动使用相同的 EC2 实例

如何在 iOS 应用程序中从 Health 应用程序获取活动的唯一标识符?

在多个活动之间启动singletop

Android中activity的四个启动模式