2014-03-02 53 views
0

我對Android應用程序開發有點新,並且已經制作了一些基本應用程序。我目前正在以更新延遲/滯後的形式出現一些應用程序問題。Android應用程序複選框在更新時滯後

本來我的應用程序有一個難度(seekBar)米。我設置了所有代碼並在模擬器和我的HTC One Mini上進行了測試。通過這兩項測試,我在搜索欄中遇到了可怕的延遲。當我拖着它時,需要好幾秒才能趕上。這留下了一個可怕的令人討厭的使用難度吧。

我已經報廢了這個想法,並且改變了我的應用程序,讓它有幾個不同的複選框以便讓用戶選擇多個難度。我剛剛測試了這個複選框,並且我在搜索欄中遇到同樣的問題。我選中複選框,然後打開幾秒鐘,反之亦然。我不確定這是否是我的代碼,模擬器或其他問題的問題。

任何幫助將是偉大的,我可以發佈我的代碼/佈局,如果它會幫助。

謝謝!

+2

發佈目前還沒有執行任何代碼,響應正在運行搜索條代碼/複選框互動 – Merlevede

+0

。我在做的唯一一件事(在我評論全部之前),是當按鈕被按下時,它檢索哪個複選框被勾選 – pantherNZ

回答

0

Android是一個多處理環境,這是通過在後臺執行信息來利用它的優勢。確定需要設置什麼,然後做什麼,例如更新測試視圖以反映值,以便用戶不會感覺到延遲,然後在後端(數據庫,服務器,其他網絡調用)中進行繁重的工作並最終返回並設置任何最終值。

一旦該值設置,這樣做:

Long[] params = {your_param, or_params}; // this can be any object 
new AsyncTask<Long, Void, Void>(){ 
    @Override 
protected Void doInBackground(Long... params) { 
     Long param = params[0]; 
     // TODO: call whatever you need in the background, database changes, etc. 
    } 
    @Override 
protected void onPostExecute(Void result) { 
    super.onPostExecute(result); 
     // TODO: any UI changes that need to be made, or toast shown 
     // UI changes cannot be made in background thread, this brings it back to UI thread 
    } 
}.execute(params); 
+0

嘿,那裏,謝謝你的幫助,但我仍然對如何實現你是什麼感到困惑談論。另外,這真的有必要嗎?我的應用程序是非常基本的,當然我不需要利用你所說的話,畢竟我在複選框選擇時沒有代碼執行。如果我需要這個,我可以閱讀更多信息的任何鏈接?謝謝 !! – pantherNZ

+0

如果你沒有在後臺執行任何繁重的代碼,那麼不應該發生......這是在模擬器上還是在設備上? – PSchuette

+0

只要重新閱讀這個問題,並看到你在兩者上都運行它。好的,你可以發佈你的代碼嗎? – PSchuette