我的Android服务在某些时候可能无法使用。
如果我的活动试图调用它,我想知道该服务是否可用。
我的活动代码是:
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中。我无法使用静态布尔来解决这个问题。