在服务启动时收到通知

时间:2017-08-21 12:31:27

标签: android service

我有Service扫描BLE设备。 Activity应显示Service收集的一些数据。

已实施Receiver,以便在Bluetooth启用时收到通知,以便我们知道何时启动Service

如果Service正在运行,并且Activity已打开,则只会执行bindService()。但是,如果Service未运行(因为Bluetooth已停用),则会打开应用并启用Bluetooth,但不会bind,因为绑定过程已被跳过。

如何在启动时通知Service启动或自动绑定?

谢谢。

3 个答案:

答案 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 
           }
        }

    }
};