gpt4 book ai didi

android - 如何检查我的应用程序是否在 android 中运行(不是作为服务)?

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:31 25 4
gpt4 key购买 nike

问题:我必须检查我的应用程序是否正在运行(当服务已经在后台运行时)。基于它,我假设开始特定的 Activity 或应用程序。

我尝试或想出但失败的事情我试图检查当前正在运行的进程,并根据它来决定应用程序是否正在运行。失败原因:让应用程序运行状态始终为真,因为我已经有服务在后台运行。

可能的解决方案,但不确定在 android 中是否可行1.如果我们可以用不同的名字(包名)运行服务2. 在应用程序启动和关闭时分别将一些 bool 值设置为 true 和 false。但这是一个好方法吗?

编辑::

抱歉,如果我之前描述的不够详细。我试着向您解释我到底想达到什么目的。

每当用户点击通知时。在检查我的应用程序是否启动后,我必须执行两个选项中的任何一个(不包括服务,因为它们总是在后台运行)。1. 如果我的应用程序已经启动,只需启动所需的 Activity 。2. 如果应用没有启动,我必须启动它,然后打开所需的 Activity 。

例如我收到消息到达通知。如果我的应用程序启动,我必须显示收件箱,否则我必须启动我的应用程序,然后打开收件箱。

最佳答案

虽然这个问题比较老,但我还是想贴出我自己的答案,因为我花了太多时间寻找类似问题的解决方案。我的服务正在传输视觉应用程序(相机、GPS 等)收集的数据。它必须在用户关闭应用程序时保持打开状态,因为它需要传输应用程序打开时尚未传输到服务器的数据。但它必须将其工作模式切换到更柔和一点(以节省电量)(当工作完成时它最终会自行关闭,但这是另一回事了。首先,我尝试从主要 Activity 向该服务发送一些命令当它即将关闭用户的 Intent 时。但是如果我只是在任务列表中关闭我的应用程序(长按主页按钮,或其他手机上的其他按钮),这将不起作用。我找到了另一个解决方案。我有用于应用程序公共(public)对象的 CommonData 类。我注意到如果我写类似的东西

CommonData.runObject = new Object();

在主 Activity 的 onCreate 中,此 runObject 在应用程序关闭时设置为 null。

因此,在我的服务中,我只需要告诉 CommonData.runObject == null 中的 CommonData.runObject != null 以查看我的应用程序是否正在运行。

关于android - 如何检查我的应用程序是否在 android 中运行(不是作为服务)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13212257/

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