我有一个非常大的应用程序,我正在努力。有时当我在2.3设备上启动时,UI线程会被卡住。我不认为这是我自己的任务之一,但我无法弄清楚它是什么。有什么方法可以弄清楚当前在UI线程中运行的确切任务是什么?
更多信息:
我在Runnable
上运行Handler
,但在某些时候使用主Looper
,但run()
在这些情况下永远不会被执行。当我触摸屏幕时,我也得到一个ANR。我认为它必须以某种方式与内存相关,因为当我删除其中一个背景图像时,感觉它会卡住更少。我虽然没有获得OOM异常。
修改
我启用了主Looper
的日志记录。调度的最后一个任务是what=1004
。这绝对不是我的。
Looper: >>>>> Dispatching to Handler{406cbec0} null: 1004
答案 0 :(得分:0)
很抱歉发布回答(没有足够的评论点),但我相信命名AsyncTasks和线程,然后使用 DDMS 或任何其他Android分析工具可能有助于解决您的问题。
通过找出性能最耗时/最耗时的方法和线程,或者可能会使内存过载(使用DDMS检查堆)。
请看以下链接:
http://developer.android.com/tools/debugging/ddms.html http://developer.android.com/tools/debugging/debugging-tracing.html
很抱歉,如果这没有任何帮助。