Xamarin Service и Forms Init - PullRequest
       7

Xamarin Service и Forms Init

0 голосов
/ 12 декабря 2018

Я пишу приложение для Android Xamarin, которое состоит из сервиса и страницы для конфигурации.Служба запускается после загрузки устройства (запускается BroadcastReceiver ) и требует подключения к базе данных для чтения конфигурации.Я получаю сообщение об ошибке, когда служба пытается прочитать базу данных:

Вы ДОЛЖНЫ вызвать Xamarin.Forms.Init ();перед его использованием.

Для подключения к базе данных я использую SQLite.Net .Я знаю, что мне нужно вызвать Xamarin.Forms.Init () , чтобы использовать базу данных, но я не знаю, как я могу это сделать.Метод Init () нуждается в контексте и Android.OS.Bundle в качестве входных данных, но в классе BroadcastReceiver у меня есть только контекст.Как я могу получить пакет?Есть ли другой способ сделать это?

Это трассировка стека исключений:

at Xamarin.Forms.Device.get_PlatformServices () 
  at Xamarin.Forms.Device.GetAssemblies () 
  at Xamarin.Forms.DependencyService.Initialize () 
  at Xamarin.Forms.DependencyService.Get[T] (Xamarin.Forms.DependencyFetchTarget fetchTarget) 
  at MyProject.Database.ConfigurationDBService..ctor () 
  at MyProject.Utils.ConfigurationUtils.getConfig () 
  at MyProject.InvoiceUploadService.OnStartCommand (Android.Content.Intent intent, Android.App.StartCommandFlags flags,System.Int32 startId)

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Я решил проблему, запустив соединение с базой данных без DependecyService, как это было предложено SushiHangover в комментариях к вопросу.

0 голосов
/ 12 декабря 2018

Положите:

Xamarin.Forms.Init();

В вашем классе MainActivity.cs в Android Project.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...