【问题标题】:Duplicate activity to launch many instances of same activity using unique identifier重复活动以使用唯一标识符启动相同活动的多个实例
【发布时间】:2018-03-06 10:45:07
【问题描述】:

我正在构建一个聊天客户端并与每个用户聊天打开相同的活动 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】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    相关资源
    最近更新 更多