我有Service
扫描BLE设备。 Activity
应显示Service
收集的一些数据。
已实施Receiver
,以便在Bluetooth
启用时收到通知,以便我们知道何时启动Service
。
如果Service
正在运行,并且Activity
已打开,则只会执行bindService()
。但是,如果Service
未运行(因为Bluetooth
已停用),则会打开应用并启用Bluetooth
,但不会bind
,因为绑定过程已被跳过。
如何在启动时通知Service
启动或自动绑定?
谢谢。
答案 0 :(得分:1)
您可以使用LocalBroadCastManager将广告从您的服务发送到您的活动。
帮助程序注册并向您的进程中的本地对象发送Intent广播。与使用sendBroadcast(Intent)发送全局广播相比,这有许多优点:
答案 1 :(得分:0)
您可以使用服务中的localbroadcast接收器。
答案 2 :(得分:0)
在您的服务中使用这些代码
intent = new Intent("my-integer");
intent.putExtra("message",""+a);
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
在您的活动中使用此代码
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Extract data included in the Intent
String data = intent.getStringExtra("message");
if (!data.equals("0")) {
//Do something
} else {
//Do something else
}
}
}
};