我已经对此进行了大量研究,但仍不确定是否可以同步连接到Android服务。 startService() 和 bindService() 服务调用本质上是异步的,而我正在尝试做的是使这种行为同步。
我尝试在一个单独的线程中编写startService(),bindService()和ServiceConnection对象初始化(包含onServiceConnected()等),该线程从主线程启动。主线程会等待直到另一个线程调用onServiceConnected()并初始化服务对象,但由于onServiceConnected()只被主线程调用(http://developer.android.com/reference/android/content/ServiceConnection.html),因此它形成死锁。
有人知道我的上述推理是正确的还是错误的吗?是否有另一种方法来实现同步行为?或者唯一的选择是在onServiceConnected()回调发生后调用服务函数?
编辑:(解释不是其他问题的确切副本)
在其他问题中,应用程序异步连接服务,并期望它表现出同步行为,因为它提到“通过添加各种Log.xx,我发现if(bindService(...))之后的代码实际上在ServiceConnection.onServiceConnected被调用之前执行”。
我尝试在一个单独的线程中编写startService(),bindService()和ServiceConnection对象初始化(包含onServiceConnected()等),该线程从主线程启动。主线程会等待直到另一个线程调用onServiceConnected()并初始化服务对象,但由于onServiceConnected()只被主线程调用(http://developer.android.com/reference/android/content/ServiceConnection.html),因此它形成死锁。
有人知道我的上述推理是正确的还是错误的吗?是否有另一种方法来实现同步行为?或者唯一的选择是在onServiceConnected()回调发生后调用服务函数?
编辑:(解释不是其他问题的确切副本)
在其他问题中,应用程序异步连接服务,并期望它表现出同步行为,因为它提到“通过添加各种Log.xx,我发现if(bindService(...))之后的代码实际上在ServiceConnection.onServiceConnected被调用之前执行”。
然而,我已经意识到这一点,问题是是否有一种同步连接服务的方法。