Android GridView和线程等待

时间:2015-05-13 02:22:58

标签: android multithreading android-listview android-adapter android-gridview

我有一个方法playSoE(),它对每个视图执行操作,并在每次操作后更新ArrayAdapter,从而更新GridView。我想要做的是在更新完成后让代码等待1秒,然后在下一个视图上执行操作。例如:

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秒并在最后显示所有操作,跳过第二次等待并执行所有操作立即执行,或者获得与并发相关的异常。

2 个答案:

答案 0 :(得分:1)

假设更新本身很快,您根本不应该创建其他线程。创建Handler并使用postDelayed(...)在UI线程中计算更新时间。

答案 1 :(得分:0)

您可能需要查看AsyncTask

将等待代码放在doInBackground(),然后影响onPostExecute()上的视觉效果的

您在doInBackground()上所做的一切都不会冻结您的申请。