Attendez que l'opération jusqu'à ce Fragment de Vues sont créées

Je suis de la programmation d'un Lecteur de Musique et la Musique joue en arrière-plan Service. Lorsque l'utilisateur tue le Activity qui accueille 3 Fragments, puis redémarre le Activity encore une fois, j'ai envoyer un Broadcast de la Service qui contient des informations sur le morceau en cours, et la liste des chansons que l'utilisateur ajoute à sa session.

Le problème est, à chaque fois que je veux régler les dernières informations dans les Fragments il ne se passe rien parce que leur création prend trop de temps, et le Broadcast n'obtient pas traités comme ils le devraient.

Comment puis-je laisser le Service ou la Broadcast attendre jusqu'à ce que les Fragments sont créés de telle sorte qu'ils sont gérés de manière appropriée?

Voici les extraits de code:

//When the activity binds to the service, refresh the fragments
private ServiceConnection conn = new ServiceConnection() {
    public void onServiceConnected(ComponentName className, IBinder service) {
        LocalBinder binder = (LocalBinder) service;
        myService = binder.getService();
        myService.setBound(true);
        if(myService.startedOnce) {
            myService.refreshFragments();
        }
        myService.startedOnce = true;
    }
}

//This is the broadcast receiver of the Fragment
//it receives the broadcast too soon, and I can't set the
//Views so they are always empty.
public void onReceive(Context context, Intent intent) {
    String action = intent.getAction();
    if (action.equals(MusicService.REFRESH_ALL)) {
        Song current = intent.getParcelableExtra("song");
        setCurrentSong(current);
    }
}

OriginalL'auteur tolgap | 2012-11-10