当在OREO中打ze睡时BroadcastReceiver触发时,xamarin形式的Android应用程序崩溃

时间:2018-09-13 13:16:15

标签: android forms xamarin wakelock

我有一个提醒应用程序,即使手机处于打ze模式,它也需要按时显示提醒。使用Android 7.1 SDK进行编译时,这似乎很好。 我的BroadcastReceiver启动时会得到WAKE_LOCK,并在finally子句中将其释放。它还将活动记录到本地SQLLite数据库中(用于调试) 我现在已更改为使用Android 8.1 SDK进行编译,但仍然可以正常运行 当手机未处于打ze模式时。 但是,当手机进入打ze状态时,应用程序会在警报的适当时间崩溃。我的日志记录语句是OnReceive的第一行,未调用。
我有陷阱捕获未捕获的异常,这些异常会报告给AppCenter并在本地进行记录。这些适用于其他例外情况。

        TaskScheduler.UnobservedTaskException += ReportUnobservedTaskException;
        AppDomain.CurrentDomain.UnhandledException += ReportUnhandledException;
        AndroidEnvironment.UnhandledExceptionRaiser += ReportThrowableEvent;

任何人都可以提出失败原因和地点,或者如何更好地对其进行调试吗? 自从移动8.1 SDK进行编译以来,这感觉就像是在改变,但是我看不到有任何会影响到此的更改。

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,以免对其他人有帮助。

对logcat的调查表明,这里的问题是调用广播接收器时未初始化应用程序。

logcat显示了以下消息:     android.runtime.JavaProxyThrowable:System.InvalidOperationException:您必须调用     Xamarin.Forms.Init();在使用它之前。

似乎有计划的作业使应用程序崩溃,因此,当警报发出时,接收器未初始化并且无法处理消息。

下一个调查是计划的作业失败的原因...。