Refresh/Update Timer

  • Hallo zusammen,


    ich habe mich nun auch dem Thema Android / App Programmierung gewidmet.
    Ein kleines Programm ist auch etstanden.


    Nun habe ich noch ein Problem:
    Ich möchte gerne einen Timer haben der mir alle X Sekunden eine Async Funktion ausführt (Automatisches Update) aber irgendwie komme ich hier nicht weiter.


    Gerne kann ich auch mal die App anhängen.


    Ich hoffe ihr könnt mir da den richtigen Weg zeigen.


    Gruß Simon


    Hier noch ein was Code (beim refreshData() knallt es dann -> Can't create handler inside thread that has not called Looper.prepare())

  • Hallo


    Wichtig zu wissen wäre was dein refreshData() macht. Greift der auf die UI (Obefläche) zu?


    Weil dann würde es den Fehler erklären da dieser Timer im Hintergrund läuft und auf die Oberfläche zugreifen will.



    Code
    runOnUiThread(new Runnable() {
        public void run() {
            autoUpdate = ....
            autoUpdate.schedule....
            //deinen Code hier
        }
    });

    Probier mal das ich glaube das sollte den Fehler beheben ;)

  • Danke Andy,


    da war auch das Problem, ich hatte schon zwar was im Netz gefunden mit runOnUiThread aber bei mir fehlte davor noch ein getActivity


    So geht es dann:

    Nun hätte ich das Problem, das mein Timer immer arbeitet. Besser fände ich es, wenn es das nur macht, wenn meine App aktiv ist.

  • Spontan fällt mir diese Lösung ein:


    Wenn du die App öffnest dann soll der Timer gestartet werden also der Code von oben.
    Wenn du die App schließt dann machst beim onStop() oder onPause() ein autoUpdate.Cancle()


    Also heißt im onStop() und im onPause() -> Timer stoppen
    Und im onResume() und im onStart() oder onCreate() -> Timer starten

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!