为什么logcat显示这个?

时间:2012-10-23 10:13:18

标签: android android-emulator logcat

我在eclipse (Helios)中使用了带有4.1版本模拟器的android最新版本sdk。一切都很好。但是在我的logcat中,对于任何应用程序的每次运行都会得到以下声明。

I/Choreographer(1250): Skipped 1001 frames!  The application may be doing too much work on its main thread.

即使在Hello world应用程序中,我也获得了相同的logcat输出。我没有在我的应用程序中使用多线程。有人可以告诉我在logcat中获取这些日志的原因。

这是我的代码

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_jsonparsing);

    _mContext = this;
    lv = (ListView) findViewById(R.id.listview);

    new JSONParserTask().execute();
}

在我的异步任务中,我从服务器获取JSONArray,解析它并列出来。

3 个答案:

答案 0 :(得分:3)

Android开发者文档提供了这个:

choreographer从显示子系统接收定时脉冲(例如垂直同步),然后安排工作作为渲染下一个显示帧的一部分发生。

应用程序通常使用动画框架或视图层次结构中的更高级别抽象来间接与choreographer交互。

有关详细信息,请参阅此linkthis

答案 1 :(得分:3)

此logcat跟踪

 I/Choreographer(1250): Skipped 1001 frames! 

应用程序可能在其主线程上做了太多工作,建议您在主线程中执行一些繁琐的任务。如果您正在执行此类任务,请使用单独的线程机制(AsyncTaskThread等)来执行此操作,此日志应该消失。

如果没有,请粘贴代码片段!!

答案 2 :(得分:1)

你是否在模拟器上运行你的应用程序。我猜你增加分配给你的AVD的内存可能会删除这个警告!! ..当我的设备模拟器分配更少的内存时,我面临类似的问题