1. Beni, 08.11.2010 #1
    Beni

    Beni Threadstarter Neuer Benutzer

    Hallo zusammen

    So, habe mal wieder ein Problem ;) Ich suche Krampfhaft im Google nach einer Lösung, bzw. einem Beispielcode. Aber irgendwie habe ich noch nichts schlaues gefunden. Auch im Forum habe ich nichts gefunden, oder ich bin unfähig zu suchen :D

    Ich programmiere gerade an meiner Android App weiter und bräuchte die SystemZeit als Variable, damit ich mit Ihr weiter arbeiten kann.

    Kann mir jemand sagen oder helfen, wie ich die aktuelle Systemzeit auslesen und in einer Variablen speichern kann? Und ist es dann auch möglich die alte Zeit der neuen abzuziehen, also die Differenz zu errechnen?

    Also so:

    Ich drücke Button1 um 12:05
    Ich drücke Button1 um 12.10

    Differenz = 5 Min.

    Wäre froh für jede Hilfe und danke schonmal im vorraus :)

    Gruss Beni
     
  2. funcoder, 08.11.2010 #2
    funcoder

    funcoder Erfahrener Benutzer

    Mit folgender Codezeile bekommst du die aktuelle Uhrzeit in Millisekunden
    Genaueres findest du genau HIER

    long aktuelleZeit = System.currentTimeMillis();

    Du bekommst letzendlich einen long der in Millisekunden die verstrichene Zeit seit dem 1. Jan 1970 angibt.
    Rechnen kannst du ganz einfach in dem du die höhere Zahl von der kleineren abziehst und die millisekunden anschließend umrechnest in Stunden/Minuten/Sekunden.
     
  3. Beni, 08.11.2010 #3
    Beni

    Beni Threadstarter Neuer Benutzer

    Hallo funcoder

    Vielen Dank :) Das werde ich dann ausprobieren, sobald ich wieder zu Hause bin.

    Dankeschön.

    Gruss Beni
     
  4. Beni, 10.11.2010 #4
    Beni

    Beni Threadstarter Neuer Benutzer

    So, ich bins wieder ;)

    Hat super geklappt mit der Zeit. Konnte auch die Differenz ausgeben. (erstmals in Sekunden) wie ich das umrechne muss ich noch schauen, dürfte aber nicht so das Problem sein ;) Vielen Dank nochmals für den Tipp.

    Nun habe ich aber noch ein Problem. Wie kann ich eine Funktion jede Sekunde abrufen?

    Ich habe zur Zeit im Public Void irgendwas() meine 4 Buttons definiert und je nach dem was ich drücke, gebe ich da was aus (und eben auch die Zeit, wie lange ich zwischen zwei Buttons gewartet habe mit drücken, also das delay)

    Nun würde ich aber gerne nicht nur das delay ausgeben, sondern immer die aktuelle Uhrzeit dazu und sagen wir mal alle Minute dann eine zwischensumme ausgeben.

    Als Beispiel: Ich drücke um 17:00 das erste mal auf Button 1 und gebe also 17:00 aus und eine Zahl1. Nach 5 Minuten drücke ich Button 2 und gebe dann die differenz, also 5 Minuten und eine andere Zahl2 aus, die ich dann mit Zahl1 addiere( Totalzahl = Zahl1+Zahl2). Ich will aber jede Minute die verstreicht, die Totalzahl um sagen wir mal 0.5 verkleinern.

    Dazu müsste ich doch die Zeit alle Minute aktualisieren, oder? Aber wie mache ich das genau? Ich habe was über Handler gelesen, der sowas machen kann...aber leider kein Beispiel gefunden, das mir verständlich war ;)

    Kann mir da nochmals jemanden einen Tipp geben? Vielen Dank schonmal :)

    Gruss Beni
     
  5. funcoder, 10.11.2010 #5
    funcoder

    funcoder Erfahrener Benutzer

    Wenn ich dich richtig verstehe, möchtest du dass alle X Sekunden ein Programmcode ausgeführt wird, der dann was auch immer macht.

    Code:
    
    do{
    
     try {
      Thread.sleep(2000); // 2 Sekunden pausieren
     } catch (InterruptedException e) {
    
     }
    
    System.out.println("Test"); // Wird alle 2 Sekunden ausgeführt
    
    }while(!exitLoop);
    
    
    OK, am besten du packst den obigen Code in eine eigene Methode die einmal aufgerufen wird.
    Der obige Code macht eigentlich nur eine Endlosschleife die bei Bedarf auch verlassen werden kann, indem der Boolean exitLoop auf true gesetzt wird.
    Mit Thread.sleep wird die Programmausführung an dieser Stelle für 2 Sekunden unterbrochen. Weshalb du diesen Code auch in einen eigenen Thread auslagern musst. Klick - HowTo Thread


    Alternativ machst du eine Endlosschleife, die immer wieder die aktuelle Zeit ausließt und überprüft ob zur vorherigen Ausführung X Sekunden vergangen sind.

    if(aktuelleZeit - alteZeit > 5000){
    // Mach was
    alteZeit = aktuelleZeit;
    }

    Das dann noch in eine Endlosschleife, fertig!
     
  6. Beni, 10.11.2010 #6
    Beni

    Beni Threadstarter Neuer Benutzer

    Vielen Dank funcoder :)

    Probier ich dann aus, sobald ich heute Abend oder spätestens Morgen dazu komme :)

    Gruss Beni
     
  7. Beni, 15.11.2010 #7
    Beni

    Beni Threadstarter Neuer Benutzer

    Hallo funcoder

    Ich bin glaub zu dumm um das einzubauen ;) Aber ich kann wenigstens nun die Zeit einlesen und auch das dem entsprechende Format.

    Nun habe ich nur noch ein Problem...wenn ich If Schlaufen habe und darin die Zeit auslese, also so:

    If test1 == 1
    {
    long aktuelleZeit = System.currentTimeMillis();
    }

    If test1 == 0
    {
    long alteZeit = System.currentTimeMillis();
    }

    und danach die Zeiten voneinander abziehen will (ausserhalb der If-Schlaufen), kennt er diese Variablen nicht mehr, oder kann sie nicht zuweisen. Muss ich das irgendwie mit Globalen Variablen lösen, dann würde ich aber nicht mehr die aktuelle Zeit rauslesen nehm ich mal an. Oder mache ich einen Überlegungsfehler?

    Wäre dankbar, wenn ich da nochmals einen Input bekomme :)

    Gruss Beni
     
  8. funcoder, 15.11.2010 #8
    funcoder

    funcoder Erfahrener Benutzer

  9. Beni, 15.11.2010 #9
    Beni

    Beni Threadstarter Neuer Benutzer

    Ich entschuldige mich in aller Form...das hätte ich wohl wirklich noch selbst suchen können!

    Danke für den Link, ist gleich mal gespeichert :) Dann muss ich wohl an meiner Struktur noch ein wenig rumbasteln ;)

    Danke Dir.

    Gruss Beni
     
  10. Beni, 23.11.2010 #10
    Beni

    Beni Threadstarter Neuer Benutzer

    So, ich kam endlich mal wieder dazu :) Nun hat es geklappt :) Ich depp habe vergessen, die Variable oben zu definieren.

    Jetzt muss ich mal noch danach suchen, wie ich gif's noch integrieren kann. Hab mal was von Animeted gelesen. Also wenn da noch wer nen brauchbaren Link hat zu einem Tutorial, wäre ich auch Dankbar :)

    Gruss Beni
     
  11. Scavanger, 23.11.2010 #11
    Scavanger

    Scavanger Junior Mitglied

    Sorry, ich bin erst über jetzt Thread gestolpert.

    Ist keine gute Idee, bis ganz schlecht. Damit wird der ganze (UI) Thread angehalten, damit kann nicht mehr auf on...() (Pause, Resume, usw.) reagiert werden im schlimmsten Fall wird dann die App vom BS einfach "abgeschossen". Außerdem kann die Activity keine andern Aufgaben mehr erledigen. Das würde ich fast als "worst practice" bezeichnen.

    Beni hate mit den Handlern schon recht, damit kann man das Verhalten eines Timers nachbauen, auch deren Verwendung unter Android nicht empfohlen wird.

    Was Beni sucht ist wunderbar hier erklärt:
    Updating the UI from a Timer | Android Developers
     
    Zuletzt bearbeitet: 23.11.2010
  12. Fr4gg0r, 23.11.2010 #12
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Zu Ende lesen hätte geholfen^^
     
  13. Beni, 24.11.2010 #13
    Beni

    Beni Threadstarter Neuer Benutzer

    Danke Scavanger für Deine Antwor :) Aber eben, ich habe es nun schon anders lösen können. Auf nen Handler kann ich atm. verzichten, aber Danke für den Link. Brauch ich sicher mal noch.

    Ich habe dafür noch ein anderes Problem Zeiteinlesen betrifft. Ich konnte die Aktuelle Zeit auslesen und in einem Anständigem Format rausgeben als String. Aber irgendwie kann ich nun die Differenz nicht ausgeben.

    Dachte, ich kann das so machen.

    Long Zeit1 = Zeit in Millisekunden auslesen
    Pause (script was auch immer)
    Long Zeit2 = Zeit in Millisekunden auslesen

    Long diff = Zeit2 - Zeit1

    und daraus dann ein datumformat machen und ausgeben.

    12:00
    Pause
    12:03

    diff = 00:03

    Aber das funzt noch nicht...er gibt mir da dann Zeit2 raus. Evtl liegt es noch daran, dass ich die zwei Zeiten aus je zwei IF-Schlaufen lese. Aber Zeit1 und Zeit2 bringt er mir korrekt. Darum bin ich ein wenig verwundert ;)

    Aber ich versuch mal die beiden Zeiten in eine Schlaufe zu packen um zu sehen, ob es mir dann korrekt angezeigt wird.

    Ist ja bald wieder Wochenende^^ Dann kann ich nochmals dran rumbasteln ;)
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Webinar: In 6 Wochen zum Android-Entwickler Android App Entwicklung Vor 43 Minuten
Hilfe bei Fehler in Quellcode benötigt Android App Entwicklung Freitag um 23:01 Uhr
[OFFEN] Android Spiel Android App Entwicklung Freitag um 09:34 Uhr
[OFFEN] Android Studio Ram voll nach 5h arbeit Android App Entwicklung 15.06.2017
[OFFEN] Android Studio - Code Style Android App Entwicklung 08.06.2017
[OFFEN] SharedPreferences und ViewPager, unique key Android App Entwicklung 06.06.2017
[OFFEN] Android Icon Pack dynamisch erstellen Android App Entwicklung 05.06.2017
[ERLEDIGT] Android 7 nougat merkwürdiges Verhalten URL HttpURLConnection %27 Android App Entwicklung 31.05.2017
[OFFEN] Android Studio - Apk-Generierung dauert sehr lange Android App Entwicklung 26.05.2017
[ERLEDIGT] Eine Klasse um das aufrufen anderer Intents zu regeln Android App Entwicklung 24.05.2017

Users found this page by searching for:

  1. android systemzeit

    ,
  2. android studio uhr

    ,
  3. c# android uhrzeit auslesen

    ,
  4. was ist die systemzeit auf android?,
  5. android studio uhrzeit ausgeben,
  6. systemzeit android,
  7. android studio zeiten,
  8. android programmieren aktuelle zeit,
  9. androidstudio zeit ausgeben,
  10. android stunden und minuten in variable,
  11. android systemzeit auslesen
Du betrachtest das Thema "Android Aktuelle Systemzeit als Variable einlesen" im Forum "Android App Entwicklung",