Ist ein IntentService's onStartCommand (..) Methode Thread sicher?

Ich habe eine IntentService- Klasse, die von verschiedenen Orten in einer komplexen Anwendung gestartet werden kann – Aktivitäten, Hintergrund Threads, andere Services. Ich würde gerne einen Zähler behalten, wie oft der Service angerufen wurde. Ich benutze eine private int-Variable in meiner IntentService-Klasse, um das zu verfolgen, ich schaffe es von meiner onStartCommand (…) Methode.

Es ist mir gerade passiert, da die Methode onStartCommand (…) aus verschiedenen asynchronen Threads aufgerufen werden kann, dass es sich dabei nicht um eine threadsichere Lösung handelt. Also die Frage ist, muss ich den Zugriff auf diese Zähler Variable in einem synchronisierten Block wickeln, oder ist die IntentService-Implementierung von onStartCommand (…) kümmert sich um diese für mich?

  • Wie man Matlab-Code auf einem Android-Gerät ausführt?
  • In App Billing verwaltet und nicht verwalteten Zustand für Produkt
  • Recyclerview + Content Provider + CursorLoader
  • Skalierung von Leinwand zur Größenanpassung von SVG in Android
  • GetSize () wird nicht auf älteren Android OS Versionen unterstützt, getWidth () / getHeight () veraltet
  • PhoneGap und WhatsApp
  • Als Notiz weiß ich, dass ich die Variable von onHandleIntent (…) sicher erhöhen könnte , aber ich brauche eine Zählung auf die tatsächlichen Anfragen und nicht auf die ausgeführten Absichten.

  • Gibt es einen schnelleren Weg, um HTML-Zeichen zu einem String zu dekodieren als Html.fromHtml ()?
  • Zielüberschreitung in Ant
  • Android Multiple SurfaceViews
  • So verwenden Sie Aktionen aus der Benachrichtigung, ohne die Aktivität zu starten
  • Was macht canvas.translate?
  • AAR Android einbetten Abhängigkeit
  • One Solution collect form web for “Ist ein IntentService's onStartCommand (..) Methode Thread sicher?”

    Es ist mir gerade passiert, da die Methode onStartCommand (…) aus verschiedenen asynchronen Threads aufgerufen werden kann, dass es sich dabei nicht um eine threadsichere Lösung handelt.

    onStartCommand() wird immer auf dem Hauptanwendungs-Thread in jedem Dienst aufgerufen. Sie können nicht mit onStartCommand() in zwei Threads gleichzeitig aufgerufen werden.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.