我正在开发一个绑定到本地服务的活动(在活动的 onCreate 中):
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);
}
}