0

我很难找到真正的解决方案。我搜索了很多,但我找不到任何好的解决方案来解决我的问题。

我想在用户点击通知时执行一些操作。所以我必须检查应用程序是在后台还是前台。如果它在前台,那么哪个活动正在运行?必须有简单的方法来找到它。

请在这方面指导我。任何帮助将不胜感激。

4

2 回答 2

1

您应该在应用程序的两个位置收听:

  • 在您的活动中显示警报。
  • 在您的服务中显示通知,使用以下解决方案之一检查活动是否正在运行。

你有几个答案总结了解决方案:

Android:如何检查活动是否正在运行?

检查Android应用程序是否在后台运行

于 2013-09-24T12:26:43.643 回答
1

因为如果应用程序在后台,则显示通知,否则显示警报。

然后你不关心“应用程序是在后台还是前台”或“如果它在前台,那么哪个活动正在运行”。

您只需关心,当事件发生时,前台 UI 会处理它(如果有前台 UI),否则您会显示Notification.

一种方法是使用有序广播,就像我在几年前写的博客一样。这是一个演示此功能的示例应用程序。基本上,服务(?)发送一个有序的广播。UI 在前台有一个用于该广播的高优先级接收器,它会中止广播并使用该事件。你还有一个低优先级的接收器,它只有在 UI 没有使用事件时才会获得控制,它会显示Notification.

于 2013-09-24T12:31:11.603 回答