0

我是 Android Java 编程的新手。

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

明白了吗?

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

知道有什么问题吗?

谢谢。

4

1 回答 1

3

在清单中将活动 launchMode 设置为 singleInstance。

于 2012-04-13T05:29:19.973 回答