如何提高在 AsyncTask 中从 Internet 检索数据的速度?

How can I improve the speed of retrieving data from internet in an AsyncTask?

在我的以下代码中,我试图通过传递 URL 来检索一些 JSON 数据。它工作正常,但从 Internet 获取数据确实需要一些时间。尽管数据不是那么庞大,但仍然需要几秒钟,然后我可以在日志中看到数据。但我真的很想提高从 Internet 检索数据的速度。

public class DownloadData extends AsyncTask<String, Void, String> {

    private static final String TAG = "DownloadData";

    @Override
    protected String doInBackground(String... strings) {

        try {
            URL url = new URL(strings[0]);
            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
            httpURLConnection.setRequestMethod("GET");
            httpURLConnection.connect();
            InputStream inputStream = httpURLConnection.getInputStream();
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);

            String result = "";

            int data;
            data = inputStreamReader.read();
            while (data != -1) {
                char currentChar = (char) data;
                result += currentChar;
                data = inputStreamReader.read();
            }

            return result;

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return "Failed";
    }

    @Override
    protected void onPostExecute(String s) {
        Log.d(TAG, "downloaded JSON Data: " + s);
    }
}

不要一个字一个字地看。太花时间了。请改用 .readLine()。

不要使用字符串连接,因为这也需要很多时间。而是使用 StringBuilder 将行添加到。