2011-11-16 42 views
0

我有一個類,它將存儲對象列表,並且還將從數據庫中填充此列表(通過遊標)。這將在我實例化對象時發生。我想在單獨的線程上填充列表,然後在填充列表時在類中設置一個標誌。我需要使用一個處理程序還是僅用於UI線程?非活動類中的Android線程

感謝, 米

這似乎爲我工作:

public void pop(){ 
    mReadyToSearch = false; 
    new Thread() { 
     public void run() { final Long startTime = System.currentTimeMillis(); 
          Log.i(TAG, "Start Pop"); 

          populateAnimalListFromCursor(); 
          mReadyToSearch = true; 

          final Long endTime = System.currentTimeMillis() - startTime; 
          Log.i(TAG, "End Pop : "+ Long.valueOf(endTime) +"ms"); 

          } 
     }.start(); 
} 

似乎有點簡單,但它加載列表和設置類的狀態,這是所有我需要在一分鐘。任何人都可以看到這個問題嗎?

感謝,男

+0

對不起,不是很清楚。該列表不是一個ListView,它只是一個List對象。該類不會用於在UI上顯示任何內容,它將僅用於根據用戶輸入條件對列表中的項目進行評分。 – mAndroid

+0

在AsyncTask的doInBackground()方法中,將所有工作人員的東西都存儲在對象列表中。所以它不會阻止你的UI和所有複雜的東西在後臺運行。 – user370305

回答

0

如果你從什麼地方的UI線程上實例化對象時,instantation也將在UI線程上運行。

我建議你添加一個AsyncTask(或Runnable能做到這一點,如果你不需要更新UI組件)作爲一個內部類你的對象做負載 - 這樣一來就會從完成非UI線程。