Я привязываюсь к Сервису, используя context.bindService(bindIntent, connection, Context.BIND_AUTO_CREATE);
.Этот метод возвращает true
.Но я не соединяюсь.Некоторый код:
// Snippet from method, that connects to service:
boolean result = context.bindService(bindIntent, connection, Context.BIND_AUTO_CREATE);
Log.d(TAG, "is connected: " + connected);
return result;
}
// Connection:
private ServiceConnection connection = new ServiceConnection() {
public void onServiceConnected(ComponentName name, IBinder service) {
parser = Parser.Stub.asInterface(service);
Log.d(TAG, "Connected to service...");
connected = true;
}
public void onServiceDisconnected(ComponentName name) {
parser = null;
Log.d(TAG, "Disconnected from service...");
connected = false;
}
};
В конце концов, я не вхожу в метод onServiceConnected
: в logcat нет сообщений, кроме D/FrameworkBridge( 926): is connected: false
.Любые идеи?
UPD: Я прокомментировал немедленный вызов метода службы (который выбрасывал NPE) после подключения к нему, и все работало хорошо: служба запускается и привязывается к.Похоже, что соединение создается в отдельном потоке, или около того.Есть ли способ заставить мой класс подождать, если соединение действительно установлено?