Android 服务提示通知无效

Android Head-up notification not working from a service

我有一个提示通知代码,当从 Activity 触发时,它可以完美地工作。 我尝试使用服务中的相同代码进行触发,但它不起作用。 请注意代码没问题(因为它在 Activity 中有效),我尝试了前台服务,但仍然没有成功。 服务和 activity 的正常通知都可以。 我还检查了没有达到限制(我知道可能有时间保护所以我在 5 分钟内测试一次通知)

有什么想法是错误的吗?

public void notifyFromTask(TaskStateData state){
    NotificationCompat.Builder builder = new NotificationCompat.Builder(mCtx, HEADUP_CHANNEL_ID);

    builder.setContentTitle(state.mTitle);
    builder.setStyle(new NotificationCompat.BigTextStyle().bigText(state.mText));

    switch (state.mTaskType){
        case NetworkTask2.DOWNLOAD_TASK:
            builder.setSmallIcon(R.drawable.ic_menu_download);
        break;
        case NetworkTask2.UPLOAD_TASK:
            builder.setSmallIcon(R.drawable.ic_menu_upload);
        break;
        case NetworkTask2.SYNC_TASK:
            builder.setSmallIcon(R.drawable.ic_menu_sync);
        break;
        default:
            builder.setSmallIcon(R.drawable.ic_menu_sync);
        break;
    }

    builder.setLargeIcon(BitmapFactory.decodeResource(mCtx.getResources(), R.drawable.icon));

    builder.setColor(mCtx.getResources().getColor(R.color.colorPrimaryDark));
    builder.setGroup(mCtx.getString(R.string.app_name));

    builder.setContentIntent(getPendingIntent());

    builder.setPriority(NotificationCompat.PRIORITY_HIGH);
    builder.setDefaults(NotificationCompat.DEFAULT_SOUND | NotificationCompat.DEFAULT_VIBRATE);

    mNM.notify(state.mTaskId, builder.build());
}

通知后调用startForeground(state.mTaskId,builder.getNotification())