MainActivity / Thread oder Services ???

  • 6 Antworten
  • Letztes Antwortdatum
D

droidli

Neues Mitglied
0
Hallo,

ich bin erst seit kurzem dabei mich mit dem Adroid Betriebssystem zu beschäftigen. In diesem Forum bin ich noch Frischling, nicht gleich was um die Ohren hau'n. :biggrin: Ich habe meine APP soweit in Einzellschritten fertig das ich diese nun zusammensetzen kann zu einer Anwendung.

Momentan läuft alles in einer MainActivity was aber nur solange der Fall ist, bis man die APP beendet, im Hintergrund läuft da dann nichts mehr.

Die App soll mir über ein FTP Socket den Status von meinen PC abfragen und bei einem Ereigniss einen Ton abspielen. Das ganze möchte ich einmal per Activity ein und aus schalten können, später vlt. mal über ein Widget.

Nun starte ich einen Thread für die Kommunikation, das läuft schon!!! Jetzt wollte ich einen Service damit beauftragen den Thread und die Steuerung des selben zu übernehmen. Problem ist nur, das Services beliebig vom System gekillt und neu gestartet werden können. Ich habe es noch nicht umgesetzt, doch frage mich dann ob das der richtige Weg ist.

Wie machen das im Prinzip die Anwendungen wie Skype, WhatsApp und co.?

Die laufen doch auch im Hintergrund und man kann sie dennoch vie UserInterface steuern. Laufen aber weiter, wenn die eigentliche App geschlossen ist.

Ich bin in Programmierung kein Neuling, habe schon einiges in Assembler, C++ und Pascal geschrieben. Hoffe das kommt mir nun zu gute... :blushing:

Grüße Frank
 
:huh: hmm...
 
Er möchte damit sagen, dass die Apps die du genannt hast nicht im Hintergrund weiterlaufen sondern sich komplett beenden.
Sobald eine Nachricht beispielsweise bei Whatsapp geschrieben wird, kommt diese als erstes auf dem Whatsappserver an, dieser sendet dann eine nachricht an die Google server dieser wiederum senden das an das Telefon (eigentlich holt das Telefon die da rein technisch gesehen ab*).
Diese Nachricht wiederum startet sozusagen die passende App die dann z.b. eine Benachrichtigung anzeigt.

Das ist auch der Weg den du gehen solltest.
Im Hintergrund andauernd einen FTP server anfragen kostet viel zu viel Batterie, damit würdest du dir deine Akkulaufzeit drastisch verkürzen, weil dein Telefon praktisch gar nicht mehr in den Ruhezustand wechseln kann.

Was evtl noch relativ sparsam machbar wäre, wenn du den AlarmManager nutzt und beispielsweise nur alle 10 Minuten mal auf die Server guckst, wobei das immer noch eher supoptimal ist.




*Im Prinzip macht das Telefon auch das was du vorhast und fragt regelmäßig beim Google server ob Nachrichten vorhanden sind, allerdings sehr batterie optimiert und quasi einmal für alle Apps die sowas nutzen.
Wenn jede App das für sich machen würde würde dein Telefon nämlich auch niemals Ruhe haben.
 
Vielen Dank für Eure Antworten!
Auch wenn ich bei der von Max1809 erst mal nicht ganz mit kam. :confused2:

amfa schrieb:
Er möchte damit sagen, dass die Apps die du genannt hast nicht im Hintergrund weiterlaufen sondern sich komplett beenden.

OK! Au man, wieder was gelernt. Die Verbindung habe ich im Kopf nicht hin bekomen, Link -> Cloud... ich möchte eigentlich nicht in die Google Wolke... :glare:

Dann waren es wohl unüberlegte Beispiele. Hmm mein Fehler!

Ich habe gestern erst mal weiter gemacht und bin nun soweit das ich alles in einem Service habe. Der läst sich starten, beenden, läuft auch wenn die APP ansich nicht zu sehen ist usw. Das läuft auch super solange man "mit Eclipse über USB verbunden ist". Sobald man im normalen Betrieb ist, wird aus meinem schlafenden Thread (zu Testzwecken 10 Sekunden Sleep) irgendwie eine Ewigkeit sobald das Display deaktiviert wird. Ich schätze was um 2 min bis die nächste Abfrage gemacht wird.

Auf meinem FTP Server sehe ich das recht deutlich das die Zeiten zwischen den einzelnen Fragen dann weit auseinander gehen.

Was ist das nun wieder? Später möchte ich wenn der Service von mir gestartet wurde, sagen wir mal alle 5 Minuten nur mal eben ein Lebenzeichen abholen wollen. Akkubelastung, das muss man dann mal sehen, wäre für mich erst mal "nebensächlich" da ich das nicht 24h am Tag brauche sondern nur vorübergehend.

Danke für Eure Unterstützung!
Grüße Frank...
 
Wie amfa bereits schrieb könntest du das mit dem Alarmmanager machen zumindest zu Testzwecken aber eine guten Stil würde ich das nicht nennen. ;)
 
Ja dann mal vielen Dank!
Komme gut voran im Moment.

Grüße Frank
 

Ähnliche Themen

AnnaBauer21
Antworten
14
Aufrufe
1.179
AnnaBauer21
AnnaBauer21
Zurück
Oben Unten