我是android-phonegap应用程序开发的新手。我想在服务器中显示来自数据库的学生详细信息。当我尝试连接数据库时,它显示我“在eclipse IDE中跳过了33帧!应用程序可能在其主线程上做了太多工作”。Phonegap-Skipped 33 frames!该应用程序可能在其主线程上做了太多工作
请给我解决方案或建议,如果有的话。
我是android-phonegap应用程序开发的新手。我想在服务器中显示来自数据库的学生详细信息。当我尝试连接数据库时,它显示我“在eclipse IDE中跳过了33帧!应用程序可能在其主线程上做了太多工作”。Phonegap-Skipped 33 frames!该应用程序可能在其主线程上做了太多工作
请给我解决方案或建议,如果有的话。
这是因为android的编舞者没有获得执行正确显示所需的资源,因此跳过帧。
这主要发生在用户在主线程中执行繁重操作时,请记住Android是单线程系统,其中所有其他子系统都挂钩以执行任务(例如Activities,Services,Content Providers)的单主线程。这就是为什么当你直接在主干上执行网络操作时,你会得到应用程序无响应消息。
要详细说明您的情况,请执行以下操作。
如果你在主线程正在做的任何网络操作,将它们移到一个单独的线程,在Android原生我们的AsyncTask的是,试图找到线程机制的PhoneGap
如果您有任何重操作,如位图等的压缩,通过螺纹或后运行的逻辑有效地处理他们,这将确保你的主线程是免费的,简单的任务,如代事件等的显示处理的
在感觉,a可能需要一些时间的逻辑,将其移至线程,这将确保您的显示顺畅运行。
希望它有帮助。
做你的数据库或服务器的交互像下面
this.cordova.getThreadPool().execute(new Runnable() {
@Override
public void run() {
// Place your Database and Network related code here
//
}
});
希望这有助于你。
我正在使用基于Web的应用程序 - 即phonegap和我得到这个问题..我不知道如何解决它? – GMan
请注意,“使用主/ UI线程”与“单线程”不同:Android支持多线程。除此之外,+1 – DarkDust