确定安卓暂停的原因

12

我的应用程序随机暂停(进入onPause方法),然后恢复(进入onResume方法),即使我没有触摸屏幕。在logcat中,没有任何迹象表明是什么导致了暂停和恢复。这只发生在Galaxy Tab 7"上,而不是Motorola Xoom或HTC Legend。

我如何确定暂停的原因?


1
“暂停”是什么意思?onPause()被调用了还是应用程序被锁定并恢复了? - DeeV
1
如果屏幕关闭,onPause将被调用。如果屏幕没有关闭,只是偶尔出现这种情况,我不确定原因。 - dymmeh
“随机”是什么意思?当一个活动进入后台时,onPause会被调用。 - aromero
1
我正在开发一个OpenGL应用程序,所以当它暂停时,会丢失OpenGL上下文,在恢复时,我会从文件重新加载纹理。问题是它随机暂停和恢复,导致屏幕不得不重新加载纹理,这是不可取的。 - Amandeep Grewal
1
我有同样的问题。在启动活动后,onPause 会在 5 秒钟后触发,然后几毫秒后 onResume 再次被调用。我现在将开始监视时间戳。 - Advanced
显示剩余3条评论
1个回答

8
您提到此问题只在Galaxy Tab设备上发生,我猜测可能是其他应用频繁添加了一个不可见的覆盖层。如果这个覆盖层位于前景,则会触发您的应用程序中的onPause()方法。
您可以使用Android Instrumentation通过ActivityMonitor来监控Activity的启动情况。我认为甚至可以使用它来防止某些Activity的启动。

那将是一个相当恶意的应用程序,不是吗?这个平板电脑是一台开发设备,只在工作中使用,因此不会被不断安装随机应用程序。 - Amandeep Grewal
实际上,你可能有所发现。在logcat中,在我最后一行日志和onPause之间,发生了这种情况: I/ActivityManager( 2492): Starting activity: Intent { flg=0x10000000 cmp=com.google.android.apps.maps/com.google.googlenav.login.AndroidLoginActivitySdk5 (has extras) } 这是什么? - Amandeep Grewal
我刚刚编辑了我的回答。我自己从来没有使用过 Instrumentation,所以...很抱歉我无法提供更多帮助。 - ming_codes
看起来它可能正在以奇怪的方式获取位置信息? - Rob
2
感谢您的帮助。重新启动设备解决了问题。我想它正在尝试获取位置,并且可能正在尝试显示一个错误窗口,但是错误窗口出现错误并未显示,变得“不可见”,导致我的活动在暂停和恢复之间切换。 - Amandeep Grewal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接