应用程序崩溃与java.lang.IllegalStateException:在后台接收通知时不允许启动服务Intent

时间:2018-01-10 10:40:52

标签: android xamarin push-notification xamarin.forms android-8.0-oreo

Xamarin使用java.lang.IllegalStateException: Not allowed to start service Intent形成针对api 26级崩溃的Android应用程序 在后台接收通知时

Notification in oreo开始,我理解的只是在应用白名单持续时间内,只有应用可以提供服务。如何正确处理这种情况,当我收到通知时,我会调用并更新我的数据库,我该如何正确地管理它。

一个答案显示

if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) {
        context.startForegroundService(new Intent(context, ServedService.class));
    } else {
        context.startService(new Intent(context, ServedService.class));
    }

但是我如何在xamarin表单应用程序中实现这一点以正确接收推送通知。

1 个答案:

答案 0 :(得分:1)

从Android 8.0开始(API级别26)。

  

如果针对Android 8.0的应用尝试在不允许创建后台服务的情况下使用该方法,则startService()方法现在会抛出IllegalStateException。

阅读Android 8.0 Behavior Changes,以便在android Oreo中开展工作。您可以在通知接收上使用Job scheduler来执行数据库任务。