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()); }