0

Web サーバーからの応答として取得する json データの解析に大きな問題があります。私がやっていることは、POST 経由で応答を取得し、応答を文字列として変換して解析することです。しかし、一部のデバイスではOutOfMemoryError、修正しようとしています。応答を string に変換する方法は次のとおりです。

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 に答える