我正在编写一个Android应用程序,我的应用程序按预期运行,除非它在后台运行很长一段时间。几个小时后我恢复应用程序时,它崩溃了。我等了一段时间并在LogCat中看到了响应,它在我的代码中指向了一个空指针异常,但是在try catch中包含该代码区域(并在catch中执行修正代码)之后,它仍然在几个小时后崩溃不活动。我的问题是,有没有办法我可以手动强制垃圾收集器(或者我的应用程序在后台运行几个小时后Android操作系统正在做什么)所以我可以有效地调试我的问题而无需等待数小时自然发生?在此先感谢StackOverflow社区!
答案 0 :(得分:3)
System.gc()
会要求对垃圾收集器进行处理,但不会强制它。
调用垃圾收集器不会解决NullPointerException。
我建议尝试调试,改用Profiler
答案 1 :(得分:2)
你所谈论的问题不一定是垃圾收集者;这是你的应用程序被卸载。我发现(目前为止)强制卸载用于测试目的的最好方法是打开几个高内存应用程序。对于我的,我加载优步,GMail,Chrome,雅虎幻想体育,Fitbit,Nook,谷歌地图,Waze,Twitter,Runkeeper,天气频道,然后我的应用程序将被卸载。有时我必须多次打开它们。我知道我的应用程序已经通过检查任务管理器(我有一个Galaxy Note 3)卸载。一旦我的应用程序不存在,那么我可以重新打开我的应用程序进行测试。打开所有这些应用程序可能需要2分钟,但这比等待几个小时要好得多。