Получить время начала и окончания загрузки - PullRequest
1 голос
/ 03 декабря 2011

Мне нужно получить время загрузки в моем приложении для 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 Ответ

0 голосов
/ 03 декабря 2011

Похоже, вы используете один и тот же объект даты для обоих операторов журнала. Добавьте это перед выпиской «загрузка завершена»:

dt = new Date();

Кстати, все эти методы (getSeconds, getHours и т. Д.) Date запрещены. Вы можете получить время просто выполнив System.currentTimeMillis () в начале загрузки и снова в конце и вычитая. Это общая продолжительность в миллисекундах, которую вы можете преобразовать в часы / минуты / секунды, если хотите.

...