Я разрабатываю действие, связанное с локальной службой (в разделе Создание действия):
bindService(new Intent(this, CommandService.class), svcConn, BIND_AUTO_CREATE);
Я хотел бы иметь возможность вызывать методы через IBinder в моих методах жизненного цикла, но не могу быть уверен, что onServiceConnected был вызван до этого. Я подумываю справиться с этим путем добавления своего рода очереди в реализации ServiceConnection, чтобы вызовы методов (шаблон команд) выполнялись после установления соединения.
Мои вопросы тогда :
- Это глупо, есть ли лучшие способы? :)
- Есть ли какая-либо спецификация, для которой поток будет использоваться для выполнения обратных вызовов ServiceConnection? Если говорить более конкретно, нужно ли беспокоиться о синхронизации структуры данных очереди?
Редактировать - что-то вроде:
public void onServiceConnected(ComponentName name, IBinder service) {
dispatchService = (DispatchAsync)service;
for(ExecutionTask task : queue){
dispatchService.execute(task.getCommand(), task);
}
}