【问题标题】:Android app crashing after incoming call来电后Android应用程序崩溃
【发布时间】:2011-02-08 13:43:33
【问题描述】:

我收到一个错误报告,当用户在玩我的游戏并收到来电时,在通话结束后我的应用程序崩溃了。

问题是我试图重新创建错误 - 我整个早上都坐在这里运行它并打电话 - 它总是恢复没有任何问题。我也看不到与此问题相关的任何错误报告。我也很详尽,在各个阶段(即进入高分、在初始屏幕上、在游戏过程中)调用它,从来没有任何问题。

这很奇怪,因为我前一阵子报告了这个错误,然后用户说现在没问题。所以我猜它一定是间歇性的。

我猜问题出在我的 onCreate() 方法中。我认为这是恢复应用程序时的入口点。

有没有人知道如何在没有崩溃报告的情况下调试这个“盲目”?

【问题讨论】:

  • 嘿,解决办法是什么?如果你找到了,请发布你自己的答案..

标签: android


【解决方案1】:

您可能正在寻找 onStart 而不是 onCreate。看看Android Developer Reference for Activity中的Activity生命周期图

【讨论】:

    【解决方案2】:

    清单中的 configChanges 是什么样的?

    确保正确处理 onConfigurationChanged。

    方向变化是许多类似问题的原因。

    【讨论】:

    • 我不允许改变方向,它固定为横向。
    【解决方案3】:

    我想我解决了这个问题。问题是我在 surfaceCreated 方法中创建了一个新的绘制线程,而没有停止前一个线程。不好,最终由于内存不足而导致异常。当我使用 DDMS 查看线程时,我可以看到多个绘制线程正在建立。在游戏中,每次将应用程序发送到后台时,我都可以看到一切都变慢了。

    这个答案对programming with thread strategy解决方案有很大帮助

    该方法提倡在将应用程序发送到后台时终止线程。但最后,我决定让线程在应用程序休眠时暂停,因为这似乎是一种更合乎逻辑的方法。除了线程内部的等待循环之外没有什么复杂的。

            while (run) {
                while ( paused ) {
                    try {
                        Thread.sleep(200);
                    } catch (InterruptedException e) { }
                }
    

    我只是在 onStop() 方法上将 paused 设置为 true。

    【讨论】:

      猜你喜欢
      • 2014-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 2016-06-13
      相关资源
      最近更新 更多