public void Unbind()
 {
     if (_serviceConnection != null)
     {
         _serviceConnection.Connected    -= ServiceConnection_Connected;
         _serviceConnection.Disconnected -= ServiceConnection_Disconnected;
         _serviceConnection.Dispose();
         _serviceConnection = null;
     }
     _messenger?.Dispose();
     _messenger = null;
 }
        public void Initialize(Action <bool> callback)
        {
            Application.Context.StartService(new Intent(Application.Context, typeof(LazuriteService)));
            _serviceConnection               = new ManagerServiceConnection();
            _serviceConnection.Connected    += ServiceConnection_Connected;
            _serviceConnection.Disconnected += ServiceConnection_Disconnected;
            var result = _activity.BindService(new Intent(Application.Context, typeof(LazuriteService)), _serviceConnection, Bind.AutoCreate);

            if (result && callback != null)
            {
                _callbacks.Add(ServiceOperation.Initialize, (obj) => callback(true));
            }
            else
            {
                callback?.Invoke(false);
            }
        }
 private void ServiceConnection_Disconnected(ManagerServiceConnection obj)
 {
     Initialize((r) => NeedRefresh?.Invoke());
 }