Je développe une activité qui se lie à un service local (en onCreate de l'activité):fil utilisé pour rappel ServiceConnection (Android)
bindService(new Intent(this, CommandService.class), svcConn, BIND_AUTO_CREATE);
Je voudrais être en mesure d'appeler des méthodes par l'IBinder dans mes méthodes de cycle de vie, mais je ne peux pas être sûr que onServiceConnected a été appelé avant cela. Je pense à gérer cela en ajoutant une sorte de file d'attente dans l'implémentation de ServiceConnection, de sorte que les appels de méthode (Mot de commande) seront exécutés une fois la connexion établie.
Mes questions sont alors:
- Est-ce stupide, de meilleures façons? :)
- Existe-t-il une spécification pour quel thread sera utilisé pour exécuter les rappels ServiceConnection? Plus précisément, dois-je m'inquiéter de la synchronisation d'une infrastructure de données de file d'attente?
Edit - quelque chose comme:
public void onServiceConnected(ComponentName name, IBinder service) {
dispatchService = (DispatchAsync)service;
for(ExecutionTask task : queue){
dispatchService.execute(task.getCommand(), task);
}
}