2011-11-12 61 views
0

在我的Android應用程序中,我遵循MVC模式,並且正在從服務器接收大文件。我想在解析一個或兩個對象時更新UI。我的意思是如果我從服務器接收20個電影對象,在解析時,我想在解析2部電影並創建2個電影對象時將內容顯示給用戶。我在單獨的Parsing類中進行解析器,並在活動中調用Async任務。在Android中減少解析時間

請讓我知道您的寶貴建議。

+0

向我們展示一些代碼! –

+0

您是否必須將這20部電影加載到一個文件中,或者可以先下載2部電影,然後再下載其他電影?這樣可以在繼續下載之前輕鬆顯示這兩部電影。 –

+0

我的代碼是完全解析我的解析器類,並返回Movies對象的列表。我需要的是從服務器我將一次接收20個電影。解析我想完全解析它,但更新後的用戶獲得3個電影對象。 – Remmyabhavan

回答

0

你可以添加一個方法downloadMoviesAsynchronously

public static interface MoviesDownloadedHandler { 
    public void run(Movie[] movies); 
} 

public void downloadMoviesAsynchronously(final MoviesDownloadedHandler downloadedFirstTwo, final MoviesDownloadedHandler downloadedAll) { 
    new Thread(new Runnable() { 
    public void run() { 
     int count = getMovieCount(); 
     Movie[] movies = new Movie[count]; 
     for (int i = 0; i < count; i++) { 
     movie[i] = downloadMovie(); 
     if (i == 1) // second movie 
      downloadedFirstTwo.run(movies); 
     } 
     downloadedAll.run(movies); 
    } 
    }).start(); 
} 

的UI則可以調用該方法,並指定一些事件處理程序,其更新的用戶界面。

+0

實際上,在我的應用程序中,所有電影列表都彙集在一個json中。我需要解析器函數,比如每解析3部電影時如何更新ui – Remmyabhavan

+0

您的json需要多大的時間才能解析?我不認爲視頻數據本身在json字符串中,因此解析肯定不會超過一秒,是嗎? – Yogu