首页 > 解决方案 > 为什么所有活动都可能关闭?

问题描述

我面临一个非常奇怪的错误,我的应用程序中的所有活动都在与应用程序交互(触摸或滚动)时关闭。

我试过设置断点onActivityStopped()onStop()回调,它们确实被调用了,但我看不到这个过程在哪里或如何开始。

日志中没有显示任何内容让我认为存在异常或任何奇怪的事情。

知道为什么会发生这种情况以及如何调试它吗?

标签: androidandroid-activity

解决方案


我终于弄清楚了这个问题。从该onResume()方法开始位置更新导致活动被暂停,然后在位置服务被禁用时无限恢复。

我认为正在发生的是:

  • 从活动的onResume()方法请求位置权限。
  • 这样做会导致onPause()在应该显示位置对话框时调用活动,甚至知道它不再是因为我们已经拒绝了它们。
  • 然后onResume()被调用并且循环继续存在。

在某些时候,如果您完全与活动进行了交互,他们的系统会出于某种我不完全理解的原因关闭它(连同其他活动)。

我认为 TL;DR 是:避免从onResume().

一些看似相关的问题:权限请求导致 OnResumehttps://github.com/permissions-dispatcher/PermissionsDispatcher/issues/90中的无限循环


推荐阅读