По своему опыту я нашел, что лучше привязать мои действия к сервису, используя
bindService(new Intent( this, ClassroomService.class), mConnection, Context.BIND_AUTO_CREATE );
Как только сервис привязан, я отправляю сообщение из моей деятельности в службу регистрации сообщений о действиях.обработчик в Activity Service Connection onServiceConnected ().
public void onServiceConnected( ComponentName className, IBinder service )
{
MyService mService = new Messenger(service);
Message msg = Message.obtain(null, MyService.MSG_REGISTER_CLIENT );
msg.replyTo = mMessenger;
mService.send(msg);
}
На стороне службы, когда он получил это сообщение, я сохраняю обработчик, переданный в члене replyTo, и использую этот обработчик для отправки сообщений обратно в "зарегистрированоЕсли никакие действия в настоящее время не зарегистрированы, сообщение игнорируется.
При откреплении от службы я также отправляю MyService.MSG_UNREGISTER_CLIENT, чтобы сообщить службе очистить сохраненную ссылку на обработчик.
Если выпривязать к службе в ваших действиях onResume () и отменить привязку на onPause (), тогда действие будет получать сообщения только тогда, когда оно находится на переднем плане.
Надеюсь, что это поможет.