2013-12-09 57 views

回答

7

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

这主要发生在用户在主线程中执行繁重操作时,请记住Android是单线程系统,其中所有其他子系统都挂钩以执行任务(例如Activities,Services,Content Providers)的单主线程。这就是为什么当你直接在主干上执行网络操作时,你会得到应用程序无响应消息。

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

  1. 如果你在主线程正在做的任何网络操作,将它们移到一个单独的线程,在Android原生我们的AsyncTask的是,试图找到线程机制的PhoneGap

  2. 如果您有任何重操作,如位图等的压缩,通过螺纹或后运行的逻辑有效地处理他们,这将确保你的主线程是免费的,简单的任务,如代事件等的显示处理的

在感觉,a可能需要一些时间的逻辑,将其移至线程,这将确保您的显示顺畅运行。

希望它有帮助。

+0

我正在使用基于Web的应用程序 - 即phonegap和我得到这个问题..我不知道如何解决它? – GMan

+1

请注意,“使用主/ UI线程”与“单线程”不同:Android支持多线程。除此之外,+1 – DarkDust

0

做你的数据库或服务器的交互像下面

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

}); 

希望这有助于你。

相关问题