首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检测应用程序是否已从最近的应用程序列表中关闭或被操作系统杀死

检测应用程序是否已从最近的应用程序列表中关闭或被操作系统杀死
EN

Stack Overflow用户
提问于 2020-02-03 18:30:12
回答 1查看 599关注 0票数 1

如果应用程序关闭,我需要执行一些 app调用

如果应用程序从最近的应用程序列表中关闭,或者被安卓系统杀死,onDestroy()onStop()就不会被解雇。但也许有办法解决这个问题?

我试过this & this

当我尝试(在小米备注7 Android 9上)时,它失败了,也没有打电话给它,也没有评论,大家都同意onTaskRemoved()不再在Android中调用。

那么,谁能帮我找到解决办法,特别是在小米、奥普等方面?

EN

回答 1

Stack Overflow用户

发布于 2020-02-03 19:18:03

我想问题不在于当您将应用程序从最近的列表中删除时没有调用onTaskRemoved。我想说的是,也许你开始的服务在应用程序进入最近的应用程序列表之前就被淘汰了。

我想介绍一下share an answer here at SO,它试图描述前台服务被杀死的问题。

因此,如果以suggested here的形式将服务作为前台服务运行,则需要定期执行一些操作以保持服务的活力。如果服务以前没有中断,我想您应该能够得到onTaskRemoved调用。

基于用例的建议:

正如在这个答案的注释中提到的,当用户离开应用程序时,您希望从购物车中删除项目,以使其可供其他用户使用。

对我来说,这更像是一个设计问题,可以用很多方式来解决。我可以放弃一些建议,但是,我的建议可能不适合你的情况。

  1. 从服务器端解决这个问题:当用户在购物车中添加项目时,将时间戳值存储到购物车中,在服务器端数据库中存储时间戳值。
  2. 对购物车项的过期采用默认阈值。当来自另一个设备的新用户试图访问同一项时,请检查时间戳值,如果时间超过阈值时间,则将该项目标记为可用。

  1. 从服务器端2:
    1. IMHO解决该问题,在项目签出/付费之前,项目总是可用的。在您的实现中,如果我能够获得您的API端点,我可以进行一个简单的脚本攻击,这样我就可以在购物车中保存项目,而无需购买它。因此,当前实现中存在一个严重的漏洞,很容易被利用。我宁愿把商品放在购物车里,直到有人付款为止。
    2. 如果您将该项目保持可供订购,直到有人付款为止,您可以在付款之前检查商品的可用性,并告诉客户该项目已经售出。

  1. 在应用程序端解决了这个问题:我想说的是,我找不到一个很好的方法来确保调用用于取消购物车的API来从购物车中删除项目。我早些时候提出的解决方案可能仍然有效,但是,IMHO,这太过分了。
  2. --如果采用onTaskRemoved实现,也可以考虑在其中设置一个计时器,以便在一段时间后,您还可以从购物车中删除项目的阈值。否则,您最终将永远保持该项目对其他用户不可用(如我前面所述)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60045103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档