【发布时间】:2012-12-25 02:25:11
【问题描述】:
我有一个错误,我正在尝试分析在点击后退按钮后调用 Activity 的 onDestroy() 方法时发生的错误。我在有问题的代码中放置了断点(使用 Eclipse)。调试器会在断点处暂停应用程序,但 Android 系统也会将应用程序从屏幕上移开并返回到手机的主屏幕。应用暂停大约 10 秒后,由于调试器突然断开,应用的线程似乎被 Android 系统破坏了。
关于如何防止 Android 系统这样做的任何想法?我需要保持应用程序处于活动状态,以便我可以进入调试器、查看变量等。
手机运行的是 Android 2.3.5。
【问题讨论】:
-
不是你要找的答案,而是android.util.Log
-
如果你在 onDestroy 中做的工作足够多,以至于你需要一个调试器,那已经是个问题了。
-
在大多数移动框架上,无论是否完成清理,系统都会在一段时间后杀死应用程序。我怀疑你可以在股票系统上禁用它。只需按照建议使用 Log 和 logcat。
-
不,这是最好的帮助。 onDestroy 不应该做任何资源密集型的事情。如果它所做的不仅仅是释放资源,那么您的架构就是错误的。如果你需要一个调试器来解决你有崩溃行号的空指针问题,你需要提高你的调试技能。调试器适用于具有大量移动部件的复杂问题,如果您针对每个问题都使用它,您将永远不会学会如何批判性地思考或调试复杂问题。更不用说仅仅添加 3 或 4 条日志语句比来这里要快一个数量级。
-
@GabeSechan,我在 Stackoverflow 上发布了部分内容,以便其他面临相同问题的人找到解决方案。此外,您是否想过这是一个错误,而不是架构决策,onDestroy() 中发生了很多事情。错误是关闭的网络连接触发观察者触发,触发应用程序中的其他代码运行。只需在 onPause() 中取消注册观察者即可。