Problem:我必须检查我的应用程序是否正在运行(当服务已经在后台运行时)。基于它,我应该启动特定的活动或应用程序。
我尝试或想出但失败的事情我尝试检查当前正在运行的进程,并根据它尝试确定应用程序是否正在运行。
失败原因:获取应用程序运行状态一如既往,因为我已经有服务在后台运行。
可能的解决方案,但不确定在 android 中是否可行1.如果我们可以使用不同的名称(包名称)运行服务
2. 在应用程序启动和关闭时分别将一些布尔值设置为 true 和 false。但这是一个好方法吗?
EDIT::
抱歉,如果我之前描述得不太清楚。我试图向你解释我到底想要实现什么目标。
每当用户单击通知时。检查我的应用程序是否启动后,我必须执行两个选项中的任何一个(不包括服务,因为它们始终在后台运行)。
1. 如果我的应用程序已启动,只需启动所需的活动。
2.如果应用程序未启动,那么我必须启动它,然后打开所需的活动。
例如
我收到消息到达通知。如果我的应用程序启动,我必须显示收件箱,否则我必须启动我的应用程序,然后打开收件箱。
虽然这个问题相当老了,但我想发布我自己的答案,因为我花了太多时间寻找类似问题的解决方案。我的服务正在传输视觉应用程序(相机、GPS 等)收集的数据。当用户关闭应用程序时,它必须保持打开状态,因为它需要传输应用程序打开时尚未传输到服务器的数据。但它必须将其工作模式切换到更柔和的状态(以节省电量)(并且当工作完成时它最终会自行关闭,但那是另一个故事了。首先,我尝试从主活动向此服务发送一些命令但是,如果我只是在任务列表中关闭我的应用程序(长按主页按钮,或其他手机上的其他按钮),这将不起作用。
我找到了另一个解决方案。我有CommonData
应用程序公共对象的类。我注意到如果我写类似的东西
CommonData.runObject = new Object();
在主要活动中onCreate
, this runObject
当应用程序关闭时设置为 null。
所以,在我的服务中我只需要告诉CommonData.runObject != null
from CommonData.runObject == null
查看我的应用程序是否正在运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)