0

我在解析一些从 Web 服务器响应的 json 数据时遇到了很大的问题。我正在做的事情是通过 POST 获得响应,然后将响应转换为字符串并解析它。但是在某些设备中,我得到了OutOfMemoryError,我正在尝试修复。这是我将响应转换为字符串的方式:

public static String convertStreamToString(InputStream is) throws Exception {
    ByteArrayOutputStream into = new ByteArrayOutputStream();
    byte[] buf = new byte[4096];
    for (int n; 0 < (n = is.read(buf));) {
        into.write(buf, 0, n);
    }
    into.close();
    return new String(into.toByteArray(), "UTF-8");
}

这是我使用这段代码的方式:

InputStream response = new BufferedInputStream(connection.getInputStream());

        try {
            String responsee = convertStreamToString(response);
            jsonParser(responsee);
        } catch (Exception e) {
            e.printStackTrace();
            cancelDialog("Error occurred! Please try again later.");
        }

有什么建议可以解决这个问题,所以不会在所有设备上发生?

在此先感谢您提供任何帮助或建议。

4

1 回答 1

0

手机内存有限。

我也面临同样的问题。我们找到的解决方案是只下载必要的信息。因此,请确认您的要求,您希望在手机中存储多少数据。如果您过滤不必要的数据,那么问题将得到解决。

在极端条件下测试程序之前,首先检查是否发生简单下载,然后检查数据的限制意味着它不会给出内存不足错误的程度。并相应地修改您的要求。

于 2012-06-21T08:55:54.177 回答