2013-12-09 62 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     
     //      
    } 

}); 

希望這有助於你。

相關問題