Erstelle nur eine Instanz von Service (Android)

Wie kann ich sicherstellen, dass nur eine Instanz des Dienstes erstellt wird?

Ich habe einige Funktionen mit der Protokollierung überprüft (WeatherService ist die Klasse, die Service erweitert):

Log.i(TAG, "Start  Id:" + WeatherService.this.hashCode());
Log.i(TAG, "End Id:" + WeatherService.this.hashCode());

Es gibt verschiedene Hash-Codes, auch wenn ich sicher bin, dass dieselbe Funktion zweimal ausgeführt wird (Download):

09-12 01:00:55.195: INFO/WeatherService(7222): Start  Id:1137653208
09-12 01:00:57.235: INFO/WeatherService(7222): Start  Id:1137654296
09-12 01:00:59.035: INFO/WeatherService(7222): Start  Id:1138806536
09-12 01:01:39.085: INFO/WeatherService(7222): End Id:1137654296
09-12 01:01:39.265: INFO/WeatherService(7222): Start  Id:1137654296
09-12 01:02:22.175: INFO/WeatherService(7222): End Id:1137653208
09-12 01:02:24.815: INFO/WeatherService(7222): End Id:1138806536
09-12 01:02:24.836: INFO/WeatherService(7222): Start  Id:1138806536
09-12 01:02:40.275: INFO/WeatherService(7222): End Id:1137654296

Ich binde eine Aktivität an den Dienst mit:

bindService(new Intent(getApplicationContext(),  WeatherService.class)
                               ,mServiceConnection, BIND_AUTO_CREATE);

Und der Service kann einige Minuten ausgeführt werden, bis er abgeschlossen ist. Daher kann der Service an viele Aktivitäten gebunden / von diesen erstellt werden.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage