i'll start telling story first .. i have service mservice, receiver mreceiver, preferencefragment switch . now, switch run service, register screen.off receiver, when screen off, receiver called, , check if screen locked, if yes output log message . so, locking means killing service, receiver called twice , go off, i've registered receiver , unrigstered in ondestory in mservice . i've added boolean, , thought adding "if" statement in ondestroy, if it's on , getting killed, run service when device unlocked . another thought, it's making service alive ( drain battery ) . what want, keep listen screen.off, , don't want start use 1 of them without advice using, or maybe understood in wrong way ? . codes basic one, register / unregister / class extends service. if need keep receiver working - need hosts receiver. yes, need keep service alive.