У меня есть, например, некоторое значение int myInt в службе, и если myInt = 1, я бы хотел остановить службу сама. Поэтому служба должна автоматически останавливаться.
myInt
myInt =
@Override public void onCreate() { super.onCreate(); if(myInt==1){ // need code for stopping service here } }
ОБНОВЛЕНИЕ
Очевидно, что мы не можем остановить обслуживание из-за характера жизненного цикла обслуживания.если вы можете проверить свое состояние также в OnStartCommand , вы можете попробовать вызвать stopself () там?
ОБНОВЛЕНИЕ 2
Для примера кода: вы можете попробовать запустить stopSelf() в отдельном потоке, как в этом сообщении: как я могу остановить мой RECEIVE_BOOT_COMPLETEDобслуживание
stopSelf()
используйте "this.stopSelf ()":
@Override public void onCreate() { super.onCreate(); if(myInt==1){ this.stopSelf(); } }
ЕСЛИ служба не поддерживается, оставаясь связанной И / ИЛИ, будучи запущенной как STICKY (START_STICKY), это будет работать.