android - 为什么所有活动都可能关闭?
问题描述
我面临一个非常奇怪的错误,我的应用程序中的所有活动都在与应用程序交互(触摸或滚动)时关闭。
我试过设置断点onActivityStopped()
和onStop()
回调,它们确实被调用了,但我看不到这个过程在哪里或如何开始。
日志中没有显示任何内容让我认为存在异常或任何奇怪的事情。
知道为什么会发生这种情况以及如何调试它吗?
解决方案
我终于弄清楚了这个问题。从该onResume()
方法开始位置更新导致活动被暂停,然后在位置服务被禁用时无限恢复。
我认为正在发生的是:
- 从活动的
onResume()
方法请求位置权限。 - 这样做会导致
onPause()
在应该显示位置对话框时调用活动,甚至知道它不再是因为我们已经拒绝了它们。 - 然后
onResume()
被调用并且循环继续存在。
在某些时候,如果您完全与活动进行了交互,他们的系统会出于某种我不完全理解的原因关闭它(连同其他活动)。
我认为 TL;DR 是:避免从onResume()
.
一些看似相关的问题:权限请求导致 OnResume和https://github.com/permissions-dispatcher/PermissionsDispatcher/issues/90中的无限循环
推荐阅读
- url-rewriting - 将邀请码转为 url discord 重写
- php - Html 和 Php 电子邮件输入表单不起作用?
- python - CodeWars Python 3.6代码优化:因子分解
- laravel-5 - Why am I getting this error with laravel websocket library?
- raspberry-pi - 未找到 rabbitmq-diagnostics 命令
- php - 通过 sessionID 从 mysql 数据库中读取 Web 位置
- python - 模块 Tensorflow 没有属性 KMeans
- c++ - 旋转块时如何修复块之间的间距?
- python - 如何轻松地将json文件的某些方面加载到rdd
- html - 在移除另一个元素后保持元素宽度不变,同时仍保持响应