我使用php脚本将远程MSSQL数据库中的学生详细信息显示到android中。数据显示正常,但需要更多时间才能显示,即在数据显示之前显示黑屏。如何快速获取数据,我应该在哪里进行更改以避免黑屏?
提前致谢。
答案 0 :(得分:1)
您应该异步拉取数据。请参阅AsyncTask。如果远程调用太慢,您还可以考虑一些缓存。
new Thread(new Runnable() {
@Override
public void run() {
//loaddata
}
}).start();
请记住,当您想要访问UI线程时,您必须使用runOnUiThread
方法
在Android中,每个应用都可以拥有一个缓存目录。它是一种缓存数据并在背景中加载新数据时显示此数据的好方法。
使用您的Datastructure Serializable,您可以将您的数据写入此缓存目录并加快加载速度。
这里有一些用于缓存数据的Snipped:
private void loadData() {
ObjectInputStream in;
try {
FileInputStream fis = new FileInputStream(new File(getCacheDir(),
"cache.dat"));
in = new ObjectInputStream(fis);
data = (Data) in.readObject();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
private void saveData() {
if (data.size() > 0) {
File file = new File(getCacheDir(), "cache.dat");
ObjectOutputStream out;
try {
file.createNewFile();
out = new ObjectOutputStream(new FileOutputStream(file));
out.writeObject(data);
out.close();
} catch (IOException e) {
}
}
}