public override StartCommandResult OnStartCommand(Intent intent, [GeneratedEnum] StartCommandFlags flags, int startId) { UserInfo = DataStorageService.LoadData <UserInfo>("UserInfo.json", this); if (UserInfo == null) { UserInfo = new UserInfo(); DataStorageService.StoreData(UserInfo, "UserInfo.json", this); } ConnectionSettings = DataStorageService.LoadData <ConnectionSettings>("ConnectionSettings.json", this); if (ConnectionSettings == null) { ConnectionSettings = new ConnectionSettings(); DataStorageService.StoreData(ConnectionSettings, "ConnectionSettings.json", this); } IsActivated = DataStorageService.LoadData <bool>("IsActivated.json", this); if (IsActivated == default(bool)) { IsActivated = false; DataStorageService.StoreData(IsActivated, "IsActivated.json", this); } SignalRService = new SignalRService(ConnectionSettings, UserInfo); ConnectionService = new ConnectionService(ConnectionSettings); UserInfoChanged = UserInfo; ConnectionSettingsChanged = ConnectionSettings; IsActivatedChange = IsActivated; Reciver = new NetworkStatusListener(); Reciver.CheckNetwork = ConnectionService.CheckNetwork; Reciver.RegisterOnNetwork = SignalRService.StartConnection; RegisterReceiver(Reciver, new IntentFilter(ConnectivityManager.ConnectivityAction)); return(StartCommandResult.Sticky); }