In Android wird ein Dienst im Hintergrund ausgeführt. Das gleiche kann aber auch mit dem Alarmmanager erreicht werden. Der Alarmempfänger kann die gleichen Dinge tun, die Sie in einem Dienst tun würden. Also, was ist der Service in Android?Unterschied zwischen Service und Verwendung von Alarm-Manager in Android
Antwort
Eigentlich sind das zwei sehr unterschiedliche Dinge. Der Alarm Manager kann verwendet werden, um einige Aufgaben regelmäßig über den Service auszuführen. Aber Service kann auch z.B. um einige schwere Arbeiten aus dem UI-Thread zu entfernen (Daten vom Rest-Server herunterladen) oder im Falle von Vordergrund-Diensten, um einige Arbeiten kontinuierlich auszuführen (MP3-Player).
Sie können einige Erklärungen zur Verwendung des Dienstes (mit einigen Ratschlägen bezüglich AlarmManager) unter Styling Android erhalten.
Im Allgemeinen wird ein Service verwendet, um Logik zu verarbeiten, wenn Sie keine Benutzeroberfläche mehr benötigen. Zum Beispiel überprüft der Service, den ich verwenden möchte, alle 15 Minuten eine Social-Networking-Site auf Updates. Der Dienst hat die Logik, das Update zu verarbeiten. Aber wer startet den Service alle 15 Minuten? Dort wird AlarmManager
verwendet. Es wird meinen Dienst periodisch alle 15 Minuten einmal starten, so dass der Dienst seine Logik ausführen und sich selbst stoppen kann, sobald die Arbeit erledigt ist und meine Anwendung die Batterie nicht weiter entleert.
Genau, das ist es, was ich erzähle. "Aber wer wird den Service alle 15 Minuten beginnen?". Warum müssen Sie den Dienst alle 15 Minuten starten? Sie können den Code zum Überprüfen von Updates direkt in die onReceiver() - Funktion des Broadcast-Receivers schreiben. – Ashwin
Ich verstehe nicht, was du erzählst. Bitte erläutern Sie ausführlich. – Ashwin
Ein Broadcast-Empfänger wird ausgelöst, wenn eine übereinstimmende Absicht gesendet wird. Selbst wenn ein Update im Social-Networking-Server vorhanden ist, kann es keine Übertragung von Absicht durch den Server in Ihrem Handy geben. Es kann nur von innerhalb des Mobiltelefons durchgeführt werden. Ein Br ist in diesem Fall nutzlos. Sie können nur über das Update herausfinden, indem Sie eine Verbindung zum Server herstellen (von einem Dienst) – Akhil
Nun, beide sind total unterschiedlich thigns.
AlarmManager
Die Klasse wird verwendet, um bestimmte Ereignisse nach einem bestimmten Zeitintervall oder nach einem regelmäßigen Zeitintervall auszuführen. Ein Ereignis kann auch eine Ausführung des Dienstes sein. Mit dem AlarmManager können Sie planen, dass Ihre Anwendung irgendwann in der Zukunft ausgeführt wird.
Während im Fall von Service
ist es ein Hintergrundprozess, der eine UI/requier nicht hat. Ein Service ist kein seperater Prozess oder Service ist kein Thread. Ein Dienst ist eine Anwendungskomponente, die entweder den Wunsch einer Anwendung darstellt, einen länger andauernden Vorgang auszuführen, während sie nicht mit dem Benutzer interagiert, oder Funktionen für andere Anwendungen zu verwenden
Auch ein Alarmmanager ist ein Hintergrundprozess, der keine Benutzeroberfläche benötigt. Was auch immer Sie in der Serviceklasse tun, das Gleiche können Sie auch in der Broadcast-Empfängerklasse tun. – Ashwin
Nun können Sie keine Ereignisse in der Service-Klasse planen. – Lucifer
Also, was ist dein Fazit? – Ashwin
- 1. Unterschied zwischen setRepeating und setInexactRepeating von Alarmmanager
- 2. Android Dev: Alarmmanager Reschedule und Service
- 3. Service Fabric - Unterschied zwischen der Verwendung von app.config und settings.xml?
- 4. Unterschied zwischen Repository und Service?
- 5. Unterschied zwischen Anwendung und Service in Dropwizard
- 6. Unterschied zwischen RTC und RTC_WAKEUP in Android
- 7. Alarmmanager nicht mein Service von Android Wear App rufen
- 8. Android - BroadcastReceiver nie von AlarmManager
- 9. Unterschied zwischen Web-Service und textbasiertem Servlet
- 10. Unterschied zwischen Repository und Service-Layer
- 11. Android Periodic GPS Standortaktualisierungen mit AlarmManager in einem Service
- 12. Was ist der Unterschied zwischen Service, IntentService in Android?
- 13. statische AlarmManager in Android
- 14. Unterschied zwischen SDK und NDK in Android
- 15. Unterschied zwischen Verwendung und Ausführung im Rack
- 16. Unterschied zwischen der Verwendung von train_test_split und cross_val_score in sklearn.cross_validation
- 17. Unterschied zwischen der Verwendung von Anführungszeichen und Anführungszeichen in Python
- 18. Unterschied zwischen Verwendung Modulname; und benutze Modulname();
- 19. Unterschied zwischen Android: actionMenuTextColor und actionMenuTextColor
- 20. Unterschied zwischen textColor und android: textColor
- 21. Unterschied zwischen Adapter und Loader in Android
- 22. Unterschied zwischen Kontextmenü und Optionsmenü in Android
- 23. Unterschied zwischen Android: Breite und android: layout_width
- 24. Unterschied zwischen Android: windowBackground und Android: colorBackground?
- 25. Unterschied zwischen Android: ID und Android: LabelFor?
- 26. Unterschied zwischen Android: layout_alignParentTop und android: layout_alignParentStart
- 27. Unterschied zwischen Service-Schicht und Controller in der Praxis
- 28. Was ist der Unterschied zwischen der ServiceBus/ServiceBusTrigger-Methode und der Verwendung von QueueClient bei Verwendung von Azure Bus Service?
- 29. Unterschied zwischen Android
- 30. Unterschied zwischen $ @ und $! in Perl
Sie können den Alarm sofort und in der onreceive() - Funktion einstellen Mach die schwere Arbeit in einem separaten Thread. – Ashwin
Um ehrlich zu sein habe ich nie versucht, es so zu machen. Aber Services werden für viele andere Aufgaben ohne AlarmManager verwendet. Zum Beispiel verwende ich einen Service, um Daten vom Rest-Server herunterzuladen und sie an zwei verschiedene Aktivitäten zu übergeben. Ich möchte in der Lage sein, die gleichen Daten zu erreichen und den Download von beiden neu zu laden. Um ehrlich zu sein, kann ich mir hier keine nette Alternative zum Service vorstellen. AlarmManager ist in solch einer Aufgabe völlig nutzlos –