2017-10-08 2 views
-1

J'ai sur mon application un service qui obtient mon emplacement (gps). Ce service obtient des informations comme la latitude, la longitude, etc, et je veux écrire ces informations dans les fragments de mise en page et l'activité (TextView).Obtenir une vue de l'activité et des fragments du service

Mais comment puis-je obtenir une référence de vue de ces fragments depuis mon service?

Répondre

1

Vous pouvez faire une chose pour y parvenir. envoyer une diffusion à l'activité. Et sur cette activité où vous voulez mettre à jour voir le registre diffusé là. Une fois que vous obtenez les trucs de localisation, envoyez la diffusion. J'espère que cela vous aidera. Ecrire ce code en service lorsque vous obtenez l'emplacement des choses et de passer ce genre de choses par l'intention, comme mentionné dans le code ci-dessous

Intent broadcastIntent = new Intent(your action here); 
     broadcastIntent.putExtra(BaseBroadCastReceiver.BROADCAST_KEY_AUDIO_INDEX, audioIndex); 
     broadcastIntent.putExtra(BaseBroadCastReceiver.BROADCAST_KEY_AUDIO_LIST, mSongList.size()); 
     sendBroadcast(broadcastIntent); 

Et dans votre écriture d'activité ci-dessous le code

private void registerMyReceiver() { 
    IntentFilter filter = new IntentFilter(your action here you passed in service); 
    registerReceiver(playNewAudio, filter); 
} 

REMARQUE: votre action peut être tout chaîne, mais la chaîne doit être le même sur les deux côtés

Lorsque la méthode de l'activité oncreate est appelée, appelez registerMyReceiver() méthode et dans la méthode OnDestroy désinscription est ce que vous pouvez obtenir R UNTIME exception

ci-dessous sera votre code pour le récepteur large coulé réelle

private BroadcastReceiver myBroadcast= new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     //do your stuff here... get extra which you passed 
     // from service and set that value in views 
    } 
}; 
+0

Merci pour vous répondre. Comment puis-je envoyer une diffusion à l'activité? – Luzwitz

+0

@Luzwitz, j'ai ajouté du code pour votre commodité si cela vous aide s'il vous plaît ne pas oublier d'accepter et de modifier la réponse –

+0

Oui, merci beaucoup. Et comment puis-je communiquer avec mon service depuis mon activité? Pour les valeurs modifiées de variables par exemple ... – Luzwitz