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 的数据库连接解决了这个问题。
我正在编写 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 的数据库连接解决了这个问题。