prozess im Ruhezustand?!

A

assenda

Ambitioniertes Mitglied
0
Ich hätte da eine Frage bezüglich der Laufzeiten von Prozessen/Threads:

Weiß jemand, wie lange Prozesse laufen?

Hab das Problem, dass meine App. nach einer Zeit nicht mehr ausgeführt wird. Vermutlich, sobald der Bildschirm ausgeht...

Wie ist es möglich, einen Prozess dauerhaft aufrecht zu erhalten (z.b. um Benachrichtigungen bei einer neuen sms anzuzeigen?!)

Kann mir jemand helfen?!
danke!
 
Das solltest du nicht tun. Dein Prozess kann sowieso jederzeit abgeschossen werden.
Ween du informiert werden willst, das eine SMS angekommen ist solltest du auf entsprechenden Intent
hören
 
Naja im Prinzip ist es keine "echte" sms, die ich anzeigen will...

Es soll dauerhaft ein Zugriff auf eine Datenbank im Internet erfolgen,
die z.b. jede min abfragt, ob neue Einträge da sind..
Diese werden dann per sms versendet...

Das alles funktioniert auch so, nur dass der Datenbankzugriff nach einer Zeit nicht mehr erfolgt. Deshalb gehe ich davon aus, dass Android den prozess "schlafen" legt. sobald die Tastensperre raus ist, ist das Programm wieder aktiv...Kann man dieses Problem auch mit Intents lösen?!

Wenn ja: könntest du evtl mal pseudocode mäßig ein beispiel machen?!
 
In diesen Fall solltest du eher einen wiederkehrenden Alarm einstellen. Und einen BroadcastReceiver auf "on boot complete" ( damit es auch startet ). Und 1 Mal proMinute ist nicht ganz nett - großere Abstand vielleicht?
Code:
        // schedule an alarm which will update the widget
        Intent ii = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE);

        ii.setClass(context, LiteralClockWidget.class);

        AlarmManager alarmService = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);


        //PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, ii, PendingIntent.FLAG_NO_CREATE);

        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, ii, 0);
        // schedule new alarm every minute
        final long now = System.currentTimeMillis();        // schedule to next minute change
        alarmService.setInexactRepeating(AlarmManager.RTC, now - now % 60000 + 60000, 60000, pendingIntent);        
Log.d(LOG_TAG, "alarm was scheduled");
 
:) naja momentan haben wir sogar einen check jede 6 sekunden...
--> Das ist momentan auch eine private App,
über die wir über eine Website sms versenden.
Das heißt das Handy liegt dauerhaft am Stromnetz und hat nur die Aufgabe sms zu versenden...

Wenn man sich z.b apps wie icq anguckt, die müssen ja auch sofort reagieren, wenn eine nachricht ankommt?!

Oda gibt es da irgendwelche probleme (ausgenommen vom Stromverbrauch?)

:) und danke für diesen Codeschnippsel...! werde das mal ausprobieren :)
 
Dann geht es ja. Aber vielleicht wäre da eine Cloud Aneendung (google app engine - ist für kleinkram eh kostenlos) eher angebracht . Twitter-clienten checken so in etwa alle 10 Minuten

Und Quellkode stammt aus “halb elf“-Widget
 
hm ;) naja...wie gesagt die app ist schon am laufen,
und die app läuft zwar privat, aber ist an eine Website angebunden, auf der so ca 70 personen newsnachrichten als auch private nachrichten schreiben..
über die sms app (mit smsflat in alle netze) werden die nachrichten dann über die app an alle user bzw an den betreffenden Handynummer gesendet...

Hab jetzt noch ein tutorial gefunden, bei dem mit Intents und services gearbeitet wird..

Also könnte ich so die abfragen vermutlich auch im Hintergrund weiter ausführen...

Danke dir :)
 

Ähnliche Themen

D
  • djsnoopy
Antworten
6
Aufrufe
598
djsnoopy
D
S
Antworten
8
Aufrufe
481
swa00
swa00
D
  • Data2006
Antworten
14
Aufrufe
449
jogimuc
J
Zurück
Oben Unten