Как отказаться от подключения к услуге - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть служба Android, которая может быть недоступна в какой-то момент.

Если моя активность пытается вызвать ее, я хочу знать, доступна ли служба.

Код моей активностиis:

    boolean bound = context.bindService(new Intent(SERVICE_NAME), mConnection, Context.BIND_AUTO_CREATE);

    if (!bound) {
        // ....
    }

Мой сервисный код:

@Override
public void onCreate() {
    mServiceEnabled = false;

    // calling some C code
    boolean readEnabled = JniCommunicator.enableRead();

    if (!readEnabled) {
        return;
    }

    // potentially return without reaching that point
    mServiceEnabled = true;
}

public IBinder onBind(Intent intent) {
    Log.d("Service", mServiceEnabled ? "enabled" : "DISABLED");
    return mServiceEnabled ? serviceBinder : null;
}

Как я понял, возврат null не будет связывать сервис, и моя активность сможет его увидеть, ноМоя bound переменная всегда true.И мой mConnection обратный вызов никогда не вызывается.

Что не так?Обратите внимание, что служба и действие находятся в двух отдельных APK, подписанных двумя отдельными ключами.Я не могу использовать статическое логическое значение для решения этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...