Xamarin 服务和表单初始化

Xamarin Service and Forms Init

我正在编写 Xamarin Android 应用程序,其中包含服务和配置页面。 该服务在设备启动后启动(由 BroadcastReceiver 启动)并且需要数据库连接来读取配置。 当服务尝试读取数据库时我收到错误消息:

You MUST call Xamarin.Forms.Init(); prior to using it.

对于数据库连接,我使用的是SQLite.Net。 我知道我需要调用 Xamarin.Forms.Init() 才能使用数据库,但我不知道该怎么做。 Init() 方法需要上下文和 Android.OS.Bundle 作为输入,但在 BroadcastReceiver class 中,我只有上下文。我怎样才能取回捆绑包?还有其他方法吗?

这是异常堆栈跟踪:

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)

放:

Xamarin.Forms.Init();

在您的 MainActivity.cs class Android 项目中。

我按照 SushiHangover 在问题评论中的建议,通过 运行 没有 DependecyService 的数据库连接解决了这个问题。