Phonegap-跳过33帧!应用程序可能在其主线程上做了太多工作

时间:2013-12-09 07:10:54

标签: android eclipse cordova

我是开发android-phonegap应用程序的新手。我想从服务器中的数据库中显示学生的详细信息。当我尝试连接数据库时,它在eclipse IDE中向我显示“跳过33帧!应用程序可能在其主线程上做了太多工作”。

如果有的话,请给我解决方案或建议。

2 个答案:

答案 0 :(得分:7)

这是因为android的编排者没有获得执行正确显示因此跳过帧所需的资源。

这主要发生在用户在主线程中执行大量操作时,记住Android是单线程系统,有单个主线程,其他所有子系统都挂钩执行任务,如活动,服务,内容提供者。这就是为什么当你直接在main thered上执行网络操作时,你得到的应用程序没有响应消息。

要详细说明您的情况,请执行以下操作。

  1. 如果您在主线程中进行了任何网络操作,请将它们移动到一个单独的线程,在Android原生中我们有AsyncTask,尝试在Phonegap中查找线程机制

  2. 如果您有任何繁重的操作,如压缩位图等,通过线程或后可运行的逻辑有效地处理它们,这将确保您的主线程可以免费执行琐碎的任务,例如生成事件的显示处理等

  3. 从某种意义上说,任何可能需要一些时间的逻辑,将它移动到线程,这将确保您的显示顺利运行。

    希望有所帮助。

答案 1 :(得分:0)

您的数据库或服务器互动如下

this.cordova.getThreadPool().execute(new Runnable() {
    @Override
    public void run() {
        // Place your Database and Network related code here                
        //                      
    }

});

希望这对你有所帮助。