我正在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。