问题:
我必须检查我的应用程序是否正在运行(当服务已经在后台运行时).基于此,我想要开始特定的活动或应用程序.
我试过或想出来但失败了
我试图检查当前的运行过程,并根据它尝试确定应用程序是否正在运行.
失败的原因:因为我已经在后台运行服务,所以应用程序运行状态始终为真.
可能的解决方案但不确定是否可能在android中
1.如果我们可以用不同的名称(包名)运行服务
2.分别在app start和close上设置一些布尔值为true和false.但这是一个好方法吗?
编辑::
对不起,如果我之前不是很具描述性.我试着向你解释我到底想要做些什么.
每当用户点击通知时.在检查我的应用程序是否已启动后,我必须从两个选项中做任何一个选项(不包括服务,因为它们总是在后台运行).
1.如果我的应用程序已启动,则启动所需的活动.
2.如果app未启动,则必须启动它,然后打开所需的活动.
例如
我收到了一条消息到达通知.如果我的应用程序启动,我必须显示收件箱,否则我必须启动我的应用程序,然后打开收件箱.
最佳答案 虽然问题相当陈旧,但我想发表自己的答案,因为我花了太多时间寻找类似问题的解决方案.我的服务正在传输通过视觉应用程序(相机,GPS等)收集的数据.当用户关闭应用程序时,它必须保持打开状态,因为它需要在应用程序打开时传输尚未传输到服务器的数据.但它必须将其工作模式切换到更软一点(以节省电力)(并且当作业完成时它最终会自动关闭,但这是另一个故事.首先,我尝试从主要活动向此服务发送一些命令当它即将关闭用户的意图.但如果我只是在任务列表中弹出我的应用程序(主页按钮长按,或其他手机上的其他一些),这不起作用.
我发现了另一个解决方我有app的常见对象的CommonData类.我注意到如果我写了类似的东西
CommonData.runObject = new Object();
在主活动的onCreate中,当app被轻弹时,此runObject设置为null.
所以,在我的服务中,我只需要从CommonData.runObject == null告诉CommonData.runObject!= null,看看我的应用程序是否正在运行.