Android アプリケーションがあり、ダウンロードした気象データの進行状況バーを表示したいと考えています。5ヶ所程度の天気予報を表示します。問題は、応答ヘッダーから Content-Length を取得したい場合です。ログには常に -1 が表示されます (フィールドが URLConnection 変数に設定されていないことを意味します)。
これは私が使用しているコードです:
private class DownloadWeatherData extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... sUrl) {
try {
URL url = new URL("http://www.google.com/ig/api?weather=NY&hl=en&oe=utf-8");
URLConnection connection = url.openConnection();
int dataLenght = connection.getContentLength();
Log.d("ANDRO_ASYNC", "Data lenght: " + dataLenght);
InputStream input = new BufferedInputStream(url.openStream());
byte data[] = new byte[1024];
long total = 0;
int count;
while ((count = input.read(data)) != -1) {
total += count;
Log.d("ANDRO_ASYNC", ""+(int)((count)));
}
input.close();
} catch (Exception e) {
}
return null;
}
}
私に何ができる?または、ダウンロードしたデータの進行状況を表示する別の方法はありますか?