1

我正在使用带有 4.1 版本模拟器的 android 最新版本 sdk eclipse (Helios)。每件事都运行良好。但是在我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,对其进行解析并列出。

4

3 回答 3

3

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

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

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

有关更多信息,请参阅此链接

于 2012-10-23T10:20:35.587 回答
3

这个 logcat 跟踪

 I/Choreographer(1250): Skipped 1001 frames! 

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

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

于 2012-10-23T10:32:03.480 回答
1

你是在模拟器上运行你的应用程序吗?我想你增加分配给你的 AVD 的内存可能会删除这个警告!!当我的设备模拟器分配的内存较少时,我会遇到类似的问题

于 2012-10-23T10:28:26.040 回答