美文网首页
Android开发错误记录:MainActivity (serv

Android开发错误记录:MainActivity (serv

作者: 哒雄 | 来源:发表于2019-10-28 16:58 被阅读0次

    错误原因:

    Android 8.0 不再允许后台service直接通过startService方式去启动, 具体行为变更如下:

    如果针对 Android 8.0 的应用尝试在不允许其创建后台服务的情况下使用 startService() 函数,则该函数将引发一个 IllegalStateException。 新的 Context.startForegroundService() 函数将启动一个前台服务。现在,即使应用在后台运行, 系统也允许其调用 Context.startForegroundService()。不过,应用必须在创建服务后的五秒内调用该服务的 startForeground() 函数。

    解决方案:

    在Service的onCreate()方法里添加

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

     NotificationChannel channel =new NotificationChannel("im_channel_id", "System", NotificationManager.IMPORTANCE_LOW);

     NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

      manager.createNotificationChannel(channel);

      Notification notification =new Notification.Builder(this, "im_channel_id")

    // the status icon

                    .setSmallIcon(R.drawable.ic_ico_1)

    // the time stamp

                    .setWhen(System.currentTimeMillis())

    // the contents of the entry

                    .setContentText("风扇动画服务正在运行")

    .build();

            startForeground(1, notification);

        }

    相关文章

      网友评论

          本文标题:Android开发错误记录:MainActivity (serv

          本文链接:https://www.haomeiwen.com/subject/zfbbvctx.html