5

我有一个错误,我试图分析在点击后退按钮后调用 Activity 的 onDestroy() 方法时发生的错误。我在有问题的代码中放置了断点(使用 Eclipse)。调试器会在断点处暂停应用程序,但 Android 系统也会将应用程序移出屏幕并返回到手机的主屏幕。应用程序暂停大约 10 秒后,应用程序的线程似乎被 Android 系统破坏,因为调试器突然断开连接。

关于如何防止Android系统这样做的任何想法?我需要保持应用程序处于活动状态,以便我可以进入调试器、查看变量等。

手机运行的是 Android 2.3.5。

4

2 回答 2

6

我发现的一种解决方法是startActivity()调用onDestroy()(before super.onDestroy()) 来启动 Activity 的虚拟实例,以保持应用程序处于活动状态。Android 系统不会对应用线程进行垃圾回收,因为其中仍有一个 Activity 正在运行(新的虚拟 Activity)。这反过来又允许您调试事物,因为调试器与线程的连接不会丢失。

如果手机弹出一个对话框说应用程序没有响应(强制关闭或等待),不要点击等待,不要理会它。似乎单击 Wait 会导致应用程序线程被杀死,并为虚拟 Activity 创建了一个新线程。

于 2012-12-24T18:25:11.177 回答
0

您可以尝试在 上设置断点super.onDestroy(),但我怀疑您也会有同样的运气。:(

Android不会让你逗留onDestroy,它会超时,所以试着更快地完成你的关机。onDestroy()仅用于释放资源,并不总是在终止前调用;数据应保存在onPause()or中onStop()https://developer.android.com/training/basics/activity-lifecycle/stopping.html

附录:其他选项包括为某些工作使用后台服务或手动处理后退按钮以给自己更多时间,但这可能会对用户体验产生负面影响。

http://www.stanford.edu/class/cs193a/03/

从我的手机发送,请放松我的拇指。

于 2012-12-20T20:01:19.160 回答