如何通过自身应用以编程方式关闭通过Intent打开的Google Maps?
关于关闭自身启动的第三方应用的问题
哥们,先给你泼个冷水——这个需求在Android系统里是没法直接实现的,核心原因在于Android的应用沙箱机制和权限限制,下面给你详细唠唠:
- 系统权限限制:Android为了保证应用的独立性和安全性,每个应用都运行在独立的进程沙箱里。普通第三方应用没有权限去终止其他应用的进程,哪怕是你自己启动的Google Maps也不行。就算你尝试调用
ActivityManager.killBackgroundProcesses()这类方法,它也只能用来终止你自己应用的后台进程,对其他应用完全无效,尤其是从Android 10开始,系统对这类操作的限制更严格了。 - 替代思路:虽然没法主动关闭Maps,但你可以做一些引导性的操作来优化体验:
- 直接启动你自己应用的主Activity,这样会把Google Maps压到后台,用户可以之后手动通过最近应用列表滑动关闭它,或者按返回键逐步退出。
- 在你的按钮点击事件里弹出提示,告诉用户如何手动关闭Maps(比如“按返回键回到本应用,或通过最近应用列表关闭Google Maps”)。
- 额外说明:如果你是用
startActivityForResult(或者AndroidX的registerForActivityResult)启动的Google Maps,当用户手动从Maps返回你的应用时,你可以在回调里做一些后续处理,但这也不是主动关闭Maps,只是处理用户的返回行为。
内容的提问来源于stack exchange,提问作者Chuflitas
相关产品推荐
相关产品推荐

