我有一个错误报告,当用户正在玩我的游戏并收到来电时,在通话结束后我的应用程序崩溃了。
问题是我试图重新创建错误 - 我整个上午一直坐在这里运行它并打电话 - 它总是恢复而没有任何问题。我也看不到与此问题相关的任何错误报告。我也非常详尽,在各个阶段(即进入高分,在启动画面,游戏过程中)调用它,从来没有任何问题。
这很奇怪,因为我之前报道过这个错误,然后用户说它现在没事了。所以我想它一定是间歇性的。
我猜这个问题出现在我的onCreate()方法中。我认为这是恢复应用程序的切入点。
有没有人知道如何在没有崩溃报告的情况下调试这个“盲目”?
答案 0 :(得分:2)
你可能正在寻找onStart而不是onCreate。请查看Android Developer Reference for Activity
中的活动生命周期图答案 1 :(得分:0)
通常不建议使用但UncaughtExceptionHandler可以处理... check the second answer
答案 2 :(得分:0)
清单中的configChanges是什么样的?
确保正确处理onConfigurationChanged。
方向变化是许多类似问题的原因。
答案 3 :(得分:0)
我想我已经修好了。问题是我在surfaceCreated方法中创建了一个新的绘制线程,而没有停止前一个线程。不好,最终因内存不足导致异常。当我使用DDMS查看线程时,我可以看到多个绘制线程在构建。在游戏中,我可以看到每次将应用程序发送到后台时一切都会变慢。
这个答案对解决方案programming with thread strategy
有很大帮助该方法主张在将应用程序发送到后台时终止线程。但最后,我决定在应用程序休眠时让线程暂停,因为它似乎更合乎逻辑。除了线程内的等待循环之外没有什么复杂的。
while (run) {
while ( paused ) {
try {
Thread.sleep(200);
} catch (InterruptedException e) { }
}
我只是在onStop()方法上将暂停设置为true。