我正在asynchronously下载将成为GridView一部分的图像。为了更新GridView中的onCreate(),我在notifyDataSetChanged();上调用runOnUiThread();

现在,我的问题是:

有一个更好的方法吗?我将Thread设置为睡眠2秒钟,以确保在适配器中的数据更改时,图像将在那里。但是,当然,我正在对这种情况进行硬编码(可能需要2秒钟以上的时间),并且Internet连接可能会失败,无法正确地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();
    }
    }

};


非常感谢你!

最佳答案

您可以使用AsyncTask类。它具有三个重要的抽象功能。
doInBackgroundonPostExecuteonPreExecute

您可以在Internet上搜索此内容,也可以检查此link

07-25 23:20
查看更多