ResultReceiver no Service Para Comunicar Activity Android

Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba grátis conteúdos Android sem precedentes! Você receberá um email de confirmação. Somente depois de confirma-lo é que eu poderei lhe enviar os conteúdos semanais exclusivos. Os artigos em PDF são entregues somente para os inscritos na lista.

Email inválido.
Blog /Android /ResultReceiver no Service Para Comunicar Activity Android

ResultReceiver no Service Para Comunicar Activity Android

Vinícius Thiengo
(3351) (4)
Go-ahead
"O método consciente de tentativa e erro é mais bem-sucedido que o planejamento de um gênio isolado."
Peter Skillman
Prototipagem Android
Capa do curso Prototipagem Profissional de Aplicativos
TítuloAndroid: Prototipagem Profissional de Aplicativos
CategoriasAndroid, Design, Protótipo
AutorVinícius Thiengo
Vídeo aulas186
Tempo15 horas
ExercíciosSim
CertificadoSim
Acessar Curso
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Lendo
TítuloManual de DevOps: como obter agilidade, confiabilidade e segurança em organizações tecnológicas
CategoriaEngenharia de Software
Autor(es)Gene Kim, Jez Humble, John Willis, Patrick Debois
EditoraAlta Books
Edição1ª
Ano2018
Páginas464
Conteúdo Exclusivo
Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba gratuitamente conteúdos Android sem precedentes!
Email inválido

Opa! Blz?

Nesse vídeo (acredito ser o último sobre Service) mostro como fazer com que nosso Service seja a parte ativa na comunicação IPC (inter-process comunication) com nossas Activities no Android. Em vídeos anteriores ficou claro que realizar a comunicação de Activity para Service é bem tranquilo, apenas utilizando o método startService() nós já podemos obter essa funcionalidade, porém para fazer com que o Service comunique a Activity nós temos que utilizar uma subclasse de ResultReceiver (no caso essa é apenas mais uma forma de permitir essa comunicação) e implementar o método onReceiveResult() dessa classe para podermos obter a mensagem. Note que a grande finalidade da classe ResultReceiver é a de permitir que nós possamos obter mensagens enviadas de processos distintos. Observe que falo sobre colocar a variável que instancia a subclasse de ResultReceiver como null antes de realizar a instanciação, isso porque em outros algoritmos eu tive problemas quando não fazia essa jogada, mas pode ser que nada aconteça em seu código, porém para prevenir não custa nada. Enfim, vou evitar mais delongas e deixar você assistir ao vídeo.

Se link dos vídeos dos assuntos que não detalhei no vídeo devido a já ter feito vídeo aulas sobre:

Service no Android, Entendendo e Utilizando

Utilizando BindService com Service no Android

IntentService no Android, Entendendo e Utilizando

runOnUiThread, Atalho de Acesso a Thread Principal no Android

Segue link da classe comentadas no vídeo:

Página da classe ResultReceiver no site oficial do Android

Vlw

Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba grátis conteúdos Android sem precedentes!
Email inválido

Relacionado

Service no Android, Entendendo e UtilizandoService no Android, Entendendo e UtilizandoAndroid
Utilizando BindService com Service no AndroidUtilizando BindService com Service no AndroidAndroid
Vibrator e HapticFeedback no Android, Entendendo e UtilizandoVibrator e HapticFeedback no Android, Entendendo e UtilizandoAndroid
IntentService no Android, Entendendo e UtilizandoIntentService no Android, Entendendo e UtilizandoAndroid

Compartilhar

Comentários Facebook

Comentários Blog (4)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
ricardo (0) (0)
12/11/2014
Thiengo blz? massa seus tutoriais .

Cara pode me ajudar. Fiz um programa igual aquele tutorial que vc fala do gcm google cloud. que eu gostaria de saber é assim , quando eu receber um push , dentro do IntentService fazer algo parecido com o que vc fez com resultreceiver e activity passiva , para que minha actitivy sempre fazer o tratamento dos push pois posso mostrar algo interno na activity . como eu poderia fazer poderia me ajudar?
Responder
Vinícius Thiengo (0) (0)
13/11/2014
Fala Ricardo, blz?
Quando precisei fazer isso, na Activity que estava utilizando, quando o usuário abria a APP, eu criava um ResultReceiver, criava um AlarmManager que enviaria uma chamada para um Service utilizando PendingIntent.getService(), no Intent que iria nessa chamada eu colocava o ResultReceiver com dado a ser transaportado (intent.putExtra("rr", resultReceiver)). Logo abaixo da criação do AlarmManager na Activity eu colocava o mesmo ResultReceiver em meu GCM (IntentService) por meio de um método statico que criei nele e tinha nele uma variavel (no IntentService do GCM) uma variavel estatica que era preenchido nesse método que falei anteriormente, assim que uma notificação chegava ao GCM IntentService e a APP estava aberta eu criava um outro AlarmManager, porém desse vez dentro do GCM IntentService chamando o mesmo Service do primeiro AlarmManager que comentei aqui, ai depois disso o vídeo acima lhe ajuda com o restante, pois é o ResultReceiver trabalhando nesse outro Service. Did you get it? Abraço
Responder
Ricardo (0) (0)
29/10/2014
Eae thiengo blz, parabens pelo post.

Eu consigo usar IntentService com  AlertDialog.?

Se sim como eu faria?
Responder
Vinícius Thiengo (0) (0)
30/10/2014
Fala Ricardo, blz?
Nunca fiz essa tentativa não, tenta ai chamar para ver se passa, vc já tem o context. Mas de qualquer forma com uma flag vc consegue junto ao ResultReceiver ativar um AlertDialog na Activity. Abraço
Responder