1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

wo Aktionen beim Start der Anwendung ausführen?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von busch99, 12.03.2012.

  1. busch99, 12.03.2012 #1
    busch99

    busch99 Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    12.03.2012
    Hallo zusammen,

    ich habe eine App, die beim Start eine bestimmte Aktion ausführen soll (Holen von Daten über ein HTTPGet). Das soll jedesmal geschehen, wenn die App von der Android-Oberfläche gestartet wird, aber nicht, wenn die Start-Activity innerhalb der App mit dem Zurück-Button aufgerufen wird.

    Wenn ich meinen Code jetzt in onStart platziere, wird er auch aufgerufen, wenn man mit Zurück zur Start-Activity zurückkehrt. Das ist nicht erwünscht.

    Wenn ich die Aktion dagegen in onCreate starte, wird sie u.U. nicht durchgeführt, wenn ich die App von der Oberfläche starte, da Android inaktive Apps ja nicht zwingend automatisch beendet, sondern im Hintergrund an Leben erhält.

    Wo startet man solche Aktionen üblicherweise? Oder kann ich im onStart irgendwie feststellen, wie die Activity gestartet wurde, per Zurück-Button oder von der Oberfläche?
     
  2. swordi, 12.03.2012 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    wenn oncreate nicht für die passend ist, dann nimm doch onResume. die wird immer aufgerufen, wenn die activity in den vordergrund kommt
     
  3. busch99, 12.03.2012 #3
    busch99

    busch99 Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    12.03.2012
    Danke, aber genau das will ich ja nicht.
    Mein HTTPGet soll ja nicht jedesmal durchgeführt werden, wenn die activity in der Vordergrund kommt, sondern nur, wenn sie von der Android-Oberfläche über das Icon gestartet wird.

    Oder geht das vielleicht nicht? Ist meine erste Android-App, ich komme von der Windows-Programmierung.
     
  4. swordi, 12.03.2012 #4
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    na dann weiß ich nicht wo genau dein problem liegt.

    du rufst die daten im oncreate ab - der user beendet die app mit dem home button.

    die daten sind ja noch gespeichert.

    der user öffnet die app wieder und er bekommt ja die daten wieder zu sehen.
    ---

    kannst aber natürlich dann im onpause die daten speichern und im onresume wieder laden. oder im onsaveinstancestate - möglichkeiten gibts viele
     
  5. busch99, 12.03.2012 #5
    busch99

    busch99 Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    12.03.2012
    Dann muss ich doch noch ein bischen weiter ausholen:
    Es ist ja OK, wenn die Daten noch gespeichert sind und der User sie nach dem Öffnen der App wieder zu sehen bekommt.
    Es kann aber sein, dass die Daten dann nicht mehr aktuell sind und man sie neu abrufen müsste. Ich könnte dazu natürlich einen Refresh-Button o.ä. einbauen, aber den muss der User dann auch betätigen, was natürlich leicht vergessen werden kann.
    Deshalb wollte ich die Daten gerne beim Start einmal automatisch abrufen, dann aber nicht mehr, weil das auf Kosten der Laufzeit geht.
     
  6. Sentence, 12.03.2012 #6
    Sentence

    Sentence Erfahrener Benutzer

    Beiträge:
    242
    Erhaltene Danke:
    51
    Registriert seit:
    27.01.2011
    Phone:
    S3, S6 Edge
    Moin,
    mach dir nen Timer, der die Daten alle X minuten aktualisiert.

    MfG

    //EDIT
    oder setz dir nen Zeitstempel, wann du das letzte mal aktualisiert hast, wenn das xx minuten zurück liegt, aktualisierst du halt.
     
  7. busch99, 13.03.2012 #7
    busch99

    busch99 Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    12.03.2012
    Danke,
    auf so etwas wird es wohl hinauslaufen.
     

Diese Seite empfehlen