2014-03-27 33 views
3

我的应用程序有时会停止显示以下消息:应用程序没有响应 - 创建异常?

应用程序未响应。你想关闭它吗?

我知道这是对UI线程的东西耗费时间的问题。但我不知道它是什么原因造成的 - 这个问题在所有运行中可能只有1%。

对于bug报告我使用系统Crashylitcs - 这是非常好的,但是当应用程序被关闭这样没有发现任何错误 - 因为没有赶上。

它可以创建异常,当应用程序崩溃这样吗?或者如何在这种崩溃之后重新加载应用程序(这只是暂时的解决方案,直到我找到真正的问题)。

通常bug会当应用程序被带回前出现 - 但在“的onResume”没有耗费时间的功能。

感谢您的任何帮助。

+0

你的代码在哪里? – IPL10

+1

不要试图抓住/记录这个错误。只需解决它,你的应用程序“不响应”绝对不正常。你有一处泄漏,如果它不是onResume它可以onStop /暂停/任何 –

+0

避免多任务等待上一个执行结束。 – IPL10

回答

0

对于您的代码优化的try/catch有内存大的成本,尽量只使用,如果是强制性的。此外,当你有“应用程序没有响应,你想关闭它吗?”可能你做了一个像multipe bitmaps等内存成本高的程序...所以你必须优化你的代码,以消耗更少的内存,特别是对于较弱的设备

+1

它通常发生在视频播放后 - 但它始终是同一设备(或相同类型的设备)上的相同视频。此外,视频只有几MB,RAM有很大的可用空间。它始终是相同的 - 在设备重新启动后,相同的视频,相同的应用程序...这是什么奇怪的: - /是的,我也使用了很多try/catch,但为什么99%的时间完美地工作只有1%停止...? – Tunerx

+0

它取决于操作系统分配过程,试图强制gc,但它不是很好的做法,也尝试删除不必要的try/catch块 –

1

你在Google Play上发布了应用程序吗? Google Play控制台会记录这类问题。它被称为ANR(应用程序没有响应)。你甚至可以检查那里的线程状态并确定你的问题。

+0

不,可悲的是它不是。这个应用程序是特殊用途,我们不能把它放到谷歌播放: - /这就是为什么我使用第三方调试报告​​系统(Crashylitcs) – Tunerx

1

ANR-看门狗(https://github.com/SalomonBrys/ANR-WatchDog)检测的Android ANR(应用无响应)错误和抛出一个有意义的异常。它设置了一个“看门狗”计时器,它将检测UI线程何时停止响应。当它发生时,它会引发所有线程堆栈跟踪的错误(主要优先)。而且,像Crashlytics这样的碰撞处理程序可以拦截它并按照它的需要处理它。