Frage

Ich muss die Zeit des Downloads in meiner Android -Anwendung bekommen. Deshalb muss ich die Zeit des Beginns und des Endes der Dowload bestimmen, um den Download des OD -Zeitraums zu bestimmen. Ich habe diese Zeile am Anfang und am Ende von hinzugefügt 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");

Aber die Überraschung ist, dass ich einige Zeit hatte. Ich kann den Grund nicht verstehen

das ist mein doInBackground Methode :

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;
    }

Was ist das Problem bitte!

War es hilfreich?

Lösung

Es sieht so aus, als ob Sie dasselbe Datum Objekt für beide Protokollanweisungen verwenden. Fügen Sie dies vor Ihrer Anweisung "Complete" -Protokollanweisung hinzu:

dt = new Date();

Übrigens sind all diese Methoden (Getseconds, Gethours usw.) des Datums entspannt. Sie können das Timing einfach durch ein System erhalten. Dies ist die Gesamtdauer in Millisekunden, die Sie in Stunden/min/Sekunden konvertieren können, wenn Sie möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top