如何正确通知此适配器其数据集已更改?

时间:2014-02-12 16:20:49

标签: java android multithreading gridview notifydatasetchanged

asynchronously下载将成为GridView一部分的图片。要更新GridView中的onCreate(),我在notifyDataSetChanged();

上致电runOnUiThread();

现在,我的问题是:

有更好的方法吗?我将Thread设置为休眠2秒,以确保适配器中的数据更改时图像将在那里。但是,当然,我正在硬编码这种情况(可能需要2秒以上),互联网连接可能无法正常阻止GridView更新。

这是Thread

private Runnable myRunnable = new Runnable(){

@Override
public void run() {
    try {
        Thread.sleep(2000); 
        updateData(); // contains notifyDataSetChanged()
        if(images[0] == null){
        Toast.makeText(getApplicationContext(), 
"Your Internet Connection is not working properly", Toast.LENGTH_SHORT).show();                 
        }
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    }

};

非常感谢!

1 个答案:

答案 0 :(得分:2)

您可以使用AsyncTask课程。它有三个重要的抽象功能。 doInBackground onPostExecute onPreExecute

您可以在互联网上搜索此内容,也可以查看此link