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

问题描述 投票:0回答:1

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

Intent.putExtra("user", username);

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

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

resultIntent.setFlags(Intent.FLAG_ACTIVITY_USER1ACTIVITY_BROUGHT_TO_FRONT_);

或称之为的东西。

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

android android-activity oncreate
1个回答
0
投票

我知道您希望拥有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);

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

© www.soinside.com 2019 - 2024. All rights reserved.