Können wir mehrere Instanzen eines Dienstes in Android haben? Ich möchte einen Dienst, der das Telefon zu einer bestimmten Zeit stumm schalten kann, und ich möchte diesen Dienst wiederverwenden, um das Telefon zu bestimmten Zeiten in den Vibrationsmodus zu versetzen. Also im Grunde, wenn ich den Dienst mehrmals ausführen kann, ist es nicht notwendig, einen anderen Dienst zu erstellen, um das Telefon in den Vibrationsmodus zu versetzen. Wenn wir mehrere Instanzen ausführen können, erklären Sie bitte, wie Sie sie stoppen können. Jeder Code-Hinweis wird viel helfen.Wie mehrere Instanzen von Service in Android haben
Antwort
Können wir mehrere Instanzen eines Dienstes in Android haben?
Nr können Sie mehrere Unterklassen von Service
haben, aber jede gegebene Unterklasse von Service
wird genau 0 oder 1 Instanzen zu einem bestimmten Zeitpunkt haben.
Ich möchte einen Dienst, der Telefon zu einer bestimmten Zeit still stellen kann und ich möchte diesen Dienst verwenden, um das Telefon im Vibrationsmodus in bestimmter Zeit zu machen.
Sie sollten keinen Service für irgendetwas davon verwenden. Verwenden Sie bitte AlarmManager
und eine BroadcastReceiver
.
Ich glaube nicht, dass der Dienst für einen solchen Zweck verwendet werden kann. Der Dienst muss einige Funktionen bereitstellen, aber nur eine Bedeutung, nicht für verschiedene Zwecke. Es ist besser, dafür zusätzlichen Service zu schaffen, um den Code einfach und klar zu halten.
Ihre Frage ergibt keinen Sinn. Es klingt wie das, was Sie tun möchten, mehrere Instanzen des gleichen Dienstes zu haben, die laufen und verschiedene Sachen gleichzeitig tun. Aber Ihre Frage hängt im Grunde davon ab, dass Dienstleistungen nicht lange dauern sollten. Was stattdessen passieren sollte ist, dass sie eine Absicht erhalten, vielleicht einen Faden oder etwas spawnen und dann aufhören, herumzuhängen. Denken Sie daran, dass ein Service immer noch auf dem Hauptthread läuft, er ist nicht im Hintergrund angesiedelt, also sollten Sie dort keine lang laufenden Dinge durchführen. Was Sie sehen wollen, ist ein IntentService, der mit Ihren Aktivitäten durch die Verwendung von Absichten koordiniert, die steuern, was geschehen soll.
- 1. Werden Android Service-Instanzen wiederverwendet?
- 2. Wie mehrere Instanzen von getInitialState in Reactjs haben?
- 3. Mehrere Instanzen eines npm-Moduls haben
- 4. WIX 3.5 Mehrere Instanzen Windows Service
- 5. Angular: Mehrere Funktionen in einem Service haben
- 6. Android IntentService - mehrere Instanzen derselben Anfrage verhindern
- 7. Mehrere Instanzen von ViewModel
- 8. Mehrere Realm-Instanzen in Android lib + Anwendung
- 9. Wie mehrere MvcHtmlString Instanzen
- 10. Mehrere Instanzen von UIViewController erstellen
- 11. mehrere Instanzen von Singleton-Klasse
- 12. Kann ich mehrere Instanzen eines RequireJS-Moduls haben?
- 13. Wie behandeln Sie mehrere Instanzen von setTimeout()?
- 14. Mehrere Instanzen einer Bean
- 15. Kann ein Android-Dienst mehrere Berechtigungen haben?
- 16. Android Studio startet mehrere GitHub-Instanzen
- 17. Wie - mehrere Dropbox-Instanzen in Linux?
- 18. Wie verhindert man mehrere Instanzen von HAProxy?
- 19. mehrere Instanzen von Dynamic modalpopupextender
- 20. Mehrere QMainWindow-Instanzen?
- 21. Angular - mehrere $ http "Instanzen"
- 22. Mehrere Instanzen von zufälliger Bildrotation
- 23. Mehrere Instanzen von Swiftmailer in Symfony2
- 24. Wie man mehrere Instanzen in Elektron verhindert
- 25. Mehrere Instanzen von iPhone Simulator?
- 26. Wie mehrere Instanzen einer Generatorfunktion
- 27. mehrere userControl-Instanzen in tabControl
- 28. Bereitstellen von zuverlässigen Service-Instanzen mit unterschiedlichen Konfigu- rationen
- 29. Android - Warum sind mehrere Instanzen dieses Dienstes ausgeführt
- 30. Mehrere Instanzen von Android-Anwendung geöffnet - NUR auf Touchwiz
Danke, ich benutze AlarmManager, um den Dienst in einem bestimmten Zeitintervall zu starten. Könnten Sie mir bitte helfen, BroadcastReceiver zu verstehen und wie man es mit AlarmManager benutzt? –
@SumitSahoo: Anstatt 'getService() 'aufzurufen, um' PendingIntent' zu erstellen, rufen Sie' getBroadcast() 'auf. Und statt dass Ihre Geschäftslogik in einem "Service" ist, ist es in einem "BroadcastReceiver" (typischerweise in dem Manifest über ein "" -Element registriert). –
CommonsWare