如何快速从远程数据库获取数据到android?

时间:2011-10-12 09:12:10

标签: android

使用php脚本将远程MSSQL数据库中的学生详细信息显示到android中。数据显示正常,但需要更多时间才能显示,即在数据显示之前显示黑屏。如何快速获取数据,我应该在哪里进行更改以避免黑屏?

提前致谢。

1 个答案:

答案 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) {
        }
    }
}