2

我有一個方法playSoE()在每個視圖上執行一個操作並在每次操作後更新ArrayAdapter和GridView。我想要做的是讓代碼在更新完成後等待1秒鐘,然後在下一個視圖上執行操作。例如:Android GridView和線程等待

public class MainActivity extends Activity{ 
    public void playSoE(){ 
     for(int i = 0; i < primesLE; i++) //iterates to each view 
      mAdapter.setPositionColor(index, 0xffff0000 + 0x100 * index); //operation performed on view 
      mAdapter.notifyDataSetChanged(); //updates adapter/GridView 

      //Code that waits for one second here 

     } 
} 

我已經嘗試了許多線程API,但他們都不工作,他們要麼已經凍結了對於primesLE秒的應用,並在結束時顯示所有的操作,跳過第二個等待和公正一次執行所有操作,或獲得與併發相關的異常。

回答

0

您可能需要查看AsyncTask

將等待代碼在doInBackground(),然後影響在onPostExecute()

所有你doInBackground()做視覺不會凍結您的應用程序如下。

+0

你建議等待代碼是什麼?我正在嘗試使用之前使用的相同API,並且它們仍然導致相同的行爲。 – user2361174

1

假設更新本身很快,你根本不應該創建額外的線程。創建Handler並使用postDelayed(...)在UI線程中更新您的更新。