Wie mehrere Instanzen von Service in Android haben

8

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.

    
Sumit Sahoo 26.03.2012, 17:23
quelle

3 Antworten

26
  

Können wir mehrere Instanzen eines Dienstes in Android haben?

Nein. Sie können mehrere Unterklassen von Service haben, aber jede Unterklasse von Service hat genau 0 oder 1 Instanzen zu einem bestimmten Zeitpunkt.

  

Ich möchte einen Dienst, der das Telefon zu einer bestimmten Zeit stummschalten kann und ich möchte diesen Dienst erneut verwenden, um das Telefon zu bestimmten Zeiten in den Vibrationsmodus zu versetzen.

Sie sollten keinen Dienst für irgendetwas davon verwenden. Verwenden Sie bitte AlarmManager und BroadcastReceiver .

    
CommonsWare 26.03.2012, 17:49
quelle
2

Ich denke 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, einen zusätzlichen Dienst zu erstellen, um den Code einfach und klar zu halten.

    
Volodymyr Lykhonis 26.03.2012 17:27
quelle
2

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.

    
Kristopher Micinski 26.03.2012 17:28
quelle

Tags und Links