Ich starte einen Dienst in einer Aktivität und möchte dann, dass der Dienst nach einer Weile von selbst aufhört.
Ich habe stopSelf() im Dienst aufgerufen, aber es funktioniert nicht.
Wie lässt sich der Dienst selbst anhalten?
Ich starte einen Dienst in einer Aktivität und möchte dann, dass der Dienst nach einer Weile von selbst aufhört.
Ich habe stopSelf() im Dienst aufgerufen, aber es funktioniert nicht.
Wie lässt sich der Dienst selbst anhalten?
Mit "funktioniert nicht" meinen Sie wohl, dass die onDestroy()
-Methode des Dienstes wird nicht aufgerufen.
Ich hatte das gleiche Problem, weil ich gebunden einige ServiceConnection an den Dienst selbst mit dem Flag BIND_AUTO_CREATE . Dies bewirkt, dass der Dienst so lange aufrechterhalten wird, bis jede Verbindung Ungebunden .
Sobald ich das Flag auf Null gesetzt habe, konnte ich den Dienst problemlos selbst beenden ( stopSelf()
).
Beispiel-Code:
final Context appContext = context.getApplicationContext();
final Intent intent = new Intent(appContext, MusicService.class);
appContext.startService(intent);
ServiceConnection connection = new ServiceConnection() {
// ...
};
appContext.bindService(intent, connection, 0);
Beenden des Dienstes (nicht des Prozesses):
this.stopSelf();
Ich hoffe, das hat geholfen.
Da Sie Ihren Code nicht veröffentlicht haben, kann ich nicht genau wissen, was Sie tun, aber Sie müssen erklären, WAS Sie stoppen:
this.stopSelf();
wie in:
public class BatchUploadGpsData extends Service {
@Override
public void onCreate() {
Log.d("testingStopSelf", "here i am, rockin like a hurricane. onCreate service");
this.stopSelf();
}
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.