Получить время начала и окончания загрузки
Я должен получить время загрузки в своем приложении для Android, поэтому мне нужно определить время начала и окончания загрузки, чтобы определить период загрузки. Я добавил эти строки в начале и конце doInBackground
:
Log.v("Download_INFO","i begin downloading at : "+" "+dt.getHours()+"h "+dt.getMinutes()+"min "
+dt.getSeconds()+"sec");
Log.v("Download_INFO","i complete downloading at : "+" "+dt.getHours()+"h "+dt.getMinutes()
+"min "+dt.getSeconds()+"sec");
Но удивительно, что у меня было немного времени. Я не могу понять причину
это мое doInBackground
метод:
protected String doInBackground(String... aurl) {
int count;
try {
File vSDCard = null;
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
vSDCard = Environment.getExternalStorageDirectory();
File vFile = new File(vSDCard.getParent() + "/" + vSDCard.getName() + "/"
+ "downloadTest.jpg");
URL url = new URL(aurl[0]);
URLConnection conexion = url.openConnection();
conexion.connect();
int lenghtOfFile = conexion.getContentLength();
Log.d("ANDRO_ASYNC", "Lenght of file: " + lenghtOfFile);
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(vFile);
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
total += count;
publishProgress("" + (int) ((total * 100) / lenghtOfFile));
output.write(data, 0, count);
}
Log.v("Download_INFO","i complete downloading at : "+" "+dt.getHours()+"h "+dt.getMinutes()
+"min "+dt.getSeconds()+"sec");
output.flush();
output.close();
input.close();
System.out.println(currentDateTimeString);
}
} catch (Exception e) {
Log.d("ImageManager", "Error: " + e);
}
return null;
}
в чем проблема пожалуйста!
1 ответ
Похоже, вы используете один и тот же объект даты для обоих операторов журнала. Добавьте это перед выпиской "загрузка завершена":
dt = new Date();
Кстати, все эти методы (getSeconds, getHours и т. Д.) Date запрещены. Вы можете получить время просто выполнив System.currentTimeMillis() в начале загрузки и снова в конце и вычитая. Это общая продолжительность в миллисекундах, которую вы можете преобразовать в часы / минуты / секунды, если хотите.