2011-02-10 37 views
0

我在我的應用程序中有兩個選項卡,一個抓住我的聯繫人並對他們的郵政編碼進行地理編碼,另一個選項卡將他們繪製在地圖上。什麼時候應該(可能)更長的任務發生?

地理編碼過程可能非常耗時。處理這種長度過程的最佳做法是什麼?

當應用程序啓動並執行所有地理編碼時,我應該有一個加載欄嗎?還是應該強制用戶單擊按鈕來執行地理編碼?

回答

1

您應該將任何需要超過200毫秒的操作移動到單獨的線程上,以免應用程序鎖定,然後從該線程更新指示符以顯示用戶進度。

您需要了解AsyncTask類,它對編寫響應式Android應用程序非常重要。

http://developer.android.com/reference/android/os/AsyncTask.html

這是一個非常簡單的包裝比,使線程容易。請記住在不再需要時停止線程,例如在onPause()中。

我傾向於將AsyncTask子類放入它們自己的類文件中(而不是作爲內部類)並將它們作爲構造函數參數傳遞給活動上下文,因此AsyncTask線程總是可以輕鬆訪問活動來更新用戶界面(但不是來自doInBackground)。

的AsyncTask的一些限制

http://foo.jasonhudgins.com/2010/05/limitations-of-asynctask.html

相關問題