Java问题,从Internet获取数据

时间:2011-02-13 17:39:10

标签: java android sockets

好的,所以我有这个方法,通过它我可以从任何输入网址获取HTML代码:

private String GetURL(String f)throws Exception{ //return html code for input url f
                String k="";        String l="";
                URL url = new URL(f);

        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setConnectTimeout(5000);    // 5 seconds
        conn.setRequestMethod("GET");       
        conn.connect();
        BufferedReader rd  = new BufferedReader(new InputStreamReader(  
                                                    conn.getInputStream()));


        while ((k = rd.readLine()) != null) {
            l = l + k;
        }
        conn.disconnect(); 
        return l; 
       }

对我来说很好。我在其主UI上的Android应用程序中使用它。因此,当用户启动应用程序时,它使用上述方法从Internet获取数据,然后显示它。

我想知道,Java是否有任何方法可以缓存此信息,以便在过早检索时,它可以从缓存中返回结果,然后再次联机。

因为问题是,每当用户改变布局时,垂直于水平;主显示屏重置,用户再次获得进度条提示(我设计的直到数据加载)。我想避免这种情况,而不使用任何数据库复杂性。

那么想知道Java是否自动提供任何缓存选项?

2 个答案:

答案 0 :(得分:1)

你必须自己处理Activity生命周期,所以不幸的是它并不那么简单。这个答案可以很好地解决您所描述的问题:Activity restart on rotation Android

答案 1 :(得分:0)

  
    

那么想知道Java是否自动提供任何缓存选项?

  

没有。你必须自己动手。