Android compileSdk 27​​ 启动服务自动显示通知

Android compileSdk 27 start service automatically show notification

我有一个启动服务的应用程序。我知道 Android Oreo 有一些限制,所以我用这个代码开始我的服务:

context.startForegroundService(new Intent(context.getApplicationContext(), BeaconService.class));

在 BeaconService class 的 onCreate() 方法中,我调用了 startForeground() 方法。 我是这样做的:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        NotificationChannel channel = new NotificationChannel(CHANNEL_ID,
                "MyApp",
                NotificationManager.IMPORTANCE_HIGH);

        try {
            ((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(channel);
        } catch (Exception e){
            e.printStackTrace();
        }

        Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID).build();
        startForeground(1, notification);

    }

我的问题是,当此服务启动时,我收到一个空通知,提示我的应用程序 运行。为什么?当我的应用 运行 在前台时,我不想要此通知。

一旦服务启动,

startForegroundService 隐式调用 startForeground (int id, Notification notification)。您看到的通知是因为这个隐式调用。