2011-08-18 113 views
2

我有一个关于Android应用程序状态的问题。我想知道我能够检查应用程序是活着还是死了,可见还是背景。我需要根据广播接收器的应用状态做出决定。Android检查应用程序状态

在此先感谢..

+1

如果您可以提供有关“决定”的详细信息,也许我们可以帮助您。 – CommonsWare

+0

简单地说,如果应用程序活着,我想跨过启动过程,然后跳转目标活动。我想知道如何检查应用程序状态。 – barisatbas

回答

1

基本上,当您收到广播时,您的应用程序将保证运行。这是因为没有首先启动应用程序进程就无法收到广播。如果在发送广播时没有组件处于活动状态(如活动状态),则仅为了处理此广播而启动应用程序进程。

至于其他部分,检测是否任何活动当前是活动的和/或可见 - 我还没有看到这个任何API调用。可能有一些解决方法(如手动将计数器保存为单例),但据我所知,并没有直接支持这一点。虽然我可能是错的。

+1

不知道具体活动的状态,我无法决定是否显示通知。例如,如果“ChatActivity”正在运行,则不允许通知,如果它没有运行,那么我必须显示通知来提醒用户。这些工作应该在'BroadcastReceiver'中完成。有没有什么好的方法呢?谢谢! – gone

0

在Android的,标准的做法是跟踪“改变”的各种状态。您可以阅读关于此here的更多信息。在特定的生命周期相关方法中,您可以根据需要执行特定的操作。

+0

这不是一个好的答案,我不需要跟踪活动生命周期,我需要检查应用程序状态:活着或死亡,可见或不可见。或应用程序至少有一个活动存活? – barisatbas

2

您确定您的“应用程序”是“活着”通过看,如果你在你的“启动程序”加载的数据存在。如果有,请使用它。如果没有,请运行“启动过程”。

+0

好吧,这是一个解决方案,但我想知道Android是否有API级别的支持。谢谢。 – barisatbas

+2

@ baris3437:你不需要“API级别的支持”。它是普通的Java,检查是否有一个静态数据成员持有你从“启动过程”中缓存的任何内容是否为“null”。 – CommonsWare