-1

我正在编写一个 Android 应用程序,我的应用程序按预期运行,除非它长时间在后台运行。当我在几个小时后恢复应用程序时,它崩溃了。我已经等待了一段时间并观察了 LogCat 中的响应,它指向我的代码中的空指针异常,但是在尝试捕获中包围该代码区域(并在捕获中执行更正代码)之后,它仍然在几个小时后崩溃的不活动。我的问题是,有没有一种方法可以手动强制垃圾收集器(或者在我的应用程序在后台运行几个小时后 Android O/S 正在执行的任何操作),这样我就可以有效地调试我的问题,而无需等待数小时自然发生?在此先感谢 StackOverflow 社区!

4

2 回答 2

4

System.gc()会要求清理垃圾收集器,但不会强制执行。

调用垃圾收集器不会解决 NullPointerException。

我建议尝试调试,改用 Profiler

于 2013-07-12T13:08:39.293 回答
2

您谈论的问题不一定是垃圾收集器;这是您的应用程序正在卸载。我发现(到目前为止)强制卸载以进行测试的最佳方法是打开几个高内存应用程序。对于我来说,我加载了 Uber、GMail、Chrome、Yahoo Fantasy Sports、Fitbit、Nook、Google Maps、Waze、Twitter、Runkeeper、The Weather Channel,然后我的应用程序将被卸载。有时我必须多次打开它们。我通过检查任务管理器知道我的应用程序已卸载(我有 Galaxy Note 3)。一旦我的应用程序不存在,我就可以重新打开我的应用程序进行测试。打开所有这些应用程序可能需要 2 分钟,但这比等待几个小时要好得多。

于 2015-09-24T18:25:30.960 回答