gpt4 book ai didi

Java Android : How to force only one instance of an app (singleTop not working correctly)?

转载 作者:行者123 更新时间:2023-12-02 00:25:37 25 4
gpt4 key购买 nike

我是 Android Java 编程新手。

我创建了一个简单的聊天应用程序。事情进展顺利,但我遇到了一个小障碍。我已在 list 的应用程序标记中设置 launchMode="singleTop",并覆盖后退按钮,因此现在当用户按下后退或主页按钮时,聊天应用程序仍保持运行(在后台)。我还创建了一些通知,当出现新聊天时(设置了intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP)),这些通知会在状态栏中弹出,当用户单击通知时,它会带来已经运行的聊天应用程序到前面。一切正常;当我从状态栏通知中调出应用程序,然后单击“返回”或“主页”,然后选择从应用程序菜单或启动器上的快捷方式打开应用程序时,就会出现问题,此时它会打开应用程序的第二个实例。

清楚了吗?

如果应用程序未运行并且我选择从应用程序菜单运行它,它就会运行(不显示任何聊天,因为它没有收到任何聊天)。我收到聊天并在应用程序的屏幕上看到它,我按后退按钮,我返回并通过应用程序菜单打开应用程序,它运行并包含之前的聊天消息。好的。现在我按返回(因此应用程序在后台,但仍在运行),我收到一条聊天,它会弹出一个状态栏通知,我单击它,它会打开应用程序并显示之前的聊天消息。好的。现在我单击“返回”(因此应用程序正在后台运行)。然后我通过应用程序菜单打开应用程序(就像我第一次和第二次一样),但是这次它不显示以前的聊天消息,如果我收到聊天,它会发出 2 声通知声音,所以我知道已启动应用程序的新实例。

知道出了什么问题吗?

谢谢。

最佳答案

在 list 中将 Activity launchMode 设置为 singleInstance。

关于Java Android : How to force only one instance of an app (singleTop not working correctly)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10131063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com