Я не знаю учебных пособий по этому вопросу, но вот моя версия:
Чтобы отправить трансляцию, вы используете метод sendBroadcast (Intent i) класса Context. Класс Service расширяет Context, поэтому вы можете получить к нему доступ из своей реализации.
Так в твоей службе идет:
public static final String BROADCAST_ACTION="com.yourservice.update";
public void onStart( Intent intent, int startId ) {
...
Intent broadcastIntent = new Intent(BROADCAST_ACTION);
sendBroadcast(broadcastIntent);
...
}
Вы должны зарегистрировать получателя для этой трансляции в своей деятельности (возможно, до того, как вы начнете транслировать их), например:
private BroadcastReceiver receiver=new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
//Here goes handling the stuff you got from the service
Bundle extras = intent.getExtras();
if(extras != null)processUIUpdate(extras);
}
};
public void onResume() {
...
//Register for the update broadcasts from the torrent service
registerReceiver(receiver, new IntentFilter(YourService.BROADCAST_ACTION));
...
}
Не забудьте отменить регистрацию, когда действие переходит в фоновый режим:
public void onPause() {
...
//Deregister for the update broadcast from the torrent service
unregisterReceiver(receiver);
...
}
Это должно работать.