Wie man einen Webservice in endlichem Abstand von Android abfragt?

8

Ich entwickle eine Android-App, um Benachrichtigungen anzuzeigen. Wie kann ich einen Webservice in endlichem Intervall (zB 10 Minuten Intervall) abfragen, um nach Updates zu suchen und diese als Benachrichtigung im Android-Benachrichtigungsfeld anzuzeigen.

    
soumitra chatterjee 10.02.2012, 11:16
quelle

4 Antworten

9

Sie brauchen keinen Service. Ich fühle mich wie eine kaputte Platte. In diesem Anwendungsfall wird ein Service 95% der Zeit dort sitzen und nichts tun, aber immer noch Systemressourcen nutzen und, was noch wichtiger ist, die Batterie entleeren.

Siehe meine Antwort zu einer ähnlichen Frage, die einen Alarm vom AlarmManager verwendet:

Task wird regelmäßig ausgeführt (einmal am Tag / einmal eine Woche)

Bearbeiten:

Sehen Sie sich dieses Tutorial auf der Android Development-Website an, um Benachrichtigungen zu implementieren: Ссылка

    
Graham Smith 10.02.2012, 11:44
quelle
6

Von Google C2DM wird ein Cloud-to-Device-Messaging-Dienst bereitgestellt. Sie können diesen Dienst verwenden, um Nachrichten an alle registrierten mobilen Geräte zu senden. Dies verbessert nicht nur die Leistung, sondern stellt auch sicher, dass die Batterie nicht entladen wird, während der Server kontinuierlich abgefragt wird.

Für Ihr Szenario können Sie in eine Java-Klasse schreiben, um regelmäßig den Web-Service abzufragen und den C2DM-Dienst verwenden, um die Nachricht an Ihr Android-Telefon zu senden, das als Benachrichtigung angezeigt werden kann. Sehen Sie sich dieses Tutorial von Vogella im Link an. Oder besser: Wenn Sie den Webdienst nur zum Abrufen aktualisierter Details verwenden, können Sie den Webdienst vermeiden und den C2DM Push Service direkt aufrufen, um bei jeder Änderung eine Nachricht an alle registrierten Geräte zu senden.

Ich hoffe, das hat geholfen. :)

    
Richie 10.02.2012 12:01
quelle
2

Verwenden Sie den Timer, in dem Sie nach endlichem Intervall für e.x

zu diesem Web-Service aufrufen können %Vor%

Hier bedeutet 20000, dass alle 20 Sekunden ein Treffer erfolgt.

    
Sumant 10.02.2012 11:35
quelle
0

Definieren Sie einen Dienst mit einem Thread mit einem Timer, bei Timeout rufen Sie den Webservice auf.

    
jeet 10.02.2012 11:35
quelle