Android Bad notification for startForeground: java.lang.RuntimeException: invalid channel for servic

Android:通知:Not allowed to start service Intent / Bad notification for startForeground 报错一 java.lang.RuntimeException: Unable to start receiver 包名.MainReceiver: java.lang.IllegalStateException: Not allowed to start service Intent { cmp=包名/.MainService }: app is in background uid UidRecord{90638 u0a10 RCVR idle change: Android o需要适配服务 if 阅读详情

测试机:小米8SE,MIUI 11.0.2

    android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification: Notification(channel=null pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x62 color=0x00000000 vis=PRIVATE)

查阅了诸多资料,发现这是Android8.0对于服务通知的变更

在8.0以后不能直接调用startservice了
改成

  Intent intet1 = new Intent(MainActivity.this, LocationUtils.class);
        intet1.setAction("android.intent.action.RESPOND_VIA_MESSAGE");
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            //android8.0以上通过startForegroundService启动service
            startForegroundService(intet1);
        } else {
            startService(intet1);
        }

在开启通知的时候

Intent nfIntent = new Intent(this, MainActivity.class);
        Notification.Builder builder = new Notification.Builder(this.getApplicationContext())
                .setContentIntent(PendingIntent.getActivity(this, 0, nfIntent, 0)) // 设置PendingIntent
                .setSmallIcon(R.mipmap.ic_launcher) // 设置状态栏内的小图标
                .setContentTitle(getResources().getString(R.string.app_name))
                .setContentText("正在上传...") // 设置上下文内容
                .setWhen(System.currentTimeMillis()); // 设置该通知发生的时间
        String CHANNEL_ONE_ID = "com.primedu.cn";
        String CHANNEL_ONE_NAME = "Channel One";
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
            //修改安卓8.1以上系统报错
            NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ONE_ID, CHANNEL_ONE_NAME, NotificationManager.IMPORTANCE_MIN);
            notificationChannel.enableLights(false);//如果使用中的设备支持通知灯,则说明此通知通道是否应显示灯
            notificationChannel.setShowBadge(false);//是否显示角标
            notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_SECRET);
            NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            manager.createNotificationChannel(notificationChannel);
            builder.setChannelId(CHANNEL_ONE_ID);
        }

        Notification notification = builder.build(); // 获取构建好的Notification
        notification.defaults = Notification.DEFAULT_SOUND; //设置为默认的声音
        startForeground(1, notification);

在mainfest中添加

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

参考:https://www.jianshu.com/p/7691957536a2
https://blog.youkuaiyun.com/qq_15527709/article/details/78853048

android 8.0 报错StartForeground Bad Notification Error 解决方法 今天升级了android8.0 并且在一个8.0的系统上运行,居然报错了 报错日志就是标题这个了 也就是使用startForeground方法开启通知的时候报错的 在android8.0后 需要给notification设置一个channelid不要问我为什么 解决方法如下 //新增--------------------------------------------- String CHANNEL_ONE_ID = "com.primedu.cn"; String CHANNEL_... 阅读详情

相关推荐

Android 8.0+必看:解决startForeground报错‘Bad notification‘的完整指南(附通知通道创建代码)

本文详细解析了Android 8.0+中startForeground报错'Bad notification'的解决方案,重点介绍了通知渠道(Notification Channel)的创建和使用方法。通过提供完整的代码示例和最佳实践,帮助开发者快速适配Android 8.0+的前台服务通知要求,避免常见的RemoteServiceException错误。

egg99的博客 726

Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service

Android 8.0 通过startService开启服务引起crash问题 解决方法: Intent intent = new Intent(this, ForegroundService.class); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForegroundServi...

jhonjson的博客 2692

从零构建2.4G无线通信系统:MSPM0G3507与NRF24L01的深度协同设计

本文详细介绍了基于MSPM0G3507微控制器与NRF24L01射频模块构建2.4G无线通信系统的深度协同设计方案。内容涵盖系统架构、SPI通信优化、功耗管理、抗干扰机制及中断/DMA高效利用,为工业物联网应用提供高可靠、低功耗的无线传输解决方案。

rice5的博客 821

【错误记录】前台进程报错 ( Bad notification for startForeground invalid channel for service notification )

前台进程报错 ( Bad notification for startForeground invalid channel for service notification )

weixin_42602900的博客 1335

基于dify平台批量分析excel格式信息

如何以表格形式批量输入一些信息,然后让大模型以对话应用形式逐条进行推理分析?请逐行分析以下数据,给出推理结果:{{input}}这里提供一个分步解决方案,结合。

knightissocool的博客 8009

车辆TBOX科普 第64次 TBOX系统集成测试与文档编写

汽车电子开发中,TBOX作为核心网关面临独特挑战:需处理多网络接口、满足严苛安全标准并确保10年以上可靠性。项目文档是开发流程的核心资产,必须与编码同步更新,构建从需求到测试的完整闭环。系统集成测试需分层进行,结合硬件在环测试和自动化工具,并严格管理缺陷。文档与测试深度协同,通过追溯矩阵确保每个需求都被覆盖验证。最终交付不仅是软件包,更是一套包含完整验证报告的信任体系。这种严谨的工程纪律,是将代码转化为车规级可靠产品的关键保障。

IT深耕十余载,大道之简 1321

Bad notification for startForeground

处理步骤: 权限问题 : <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> Android 8.0以上需要Notification需要设置个Channel 下面2处都需要注意设置channelId 2.1: 接收通知 Notification.Builder builder; if (Build.VERSION.SDK_INT >= B

Liuyz0420的博客 8650

在Wincc8.0的Wincc 3D Control控件中使用3D模型

如果之前没有在Blender中自定义光照,EnableBackground属性选择“是”,Wincc 3D Control会按一个均匀的光照强度渲染。Wincc8.0更新后提供了一个Wincc 3D Control控件来显示3D图像,但是该控件实际体验下来现阶段还存在功能不足、运行不稳定的问题。再把导出的dae文件复制进Wincc项目的GraCS文件夹中,文件名称复制进控件的SceneFile属性里。选择编辑模式,全选模型,点击网格→分离→按材质,分离出不同的部件(不同的部件最好使用不同的材质)。

ghoring的博客 7133

startForground Bad notification for startForeground

Bad notification for startForeground 问题

u013441613的博客 1973

8-bit量化在YOLOv11中的部署实践-(使用PTQ、QAT量化技术实现模型体积压缩和推理加速)

本文系统介绍了YOLOv11模型量化技术,主要包括三个核心部分:首先阐述模型量化的基础理论,包括量化分类、数学原理和性能影响;其次分析YOLOv11架构特点及其量化敏感层;最后详细讲解训练后量化(PTQ)的具体实现流程。研究表明,8-bit量化可使YOLOv11模型大小缩减至1/4,推理速度提升1.7-2.3倍,精度损失控制在1%以内。文章特别强调了校准算法选择(如最小最大值法和KL散度法)对量化效果的关键影响,并提供了完整的代码实现示例,为YOLOv11的高效部署提供实用指导。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1626

[QMT和ptrade量化交易小白入门]-121、如何用K-means聚类,每月自动筛选高流动性ETF

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 828

android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException

安卓开发8.1以上系统启动服务和通知报错     android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification: Notification(channel=null pri=...

qq_33649832的博客 2万+

Go游戏服务器开发的一些思考(一):语言层面

Go是比C++更好用的高级语言使用Go作为服务器开发的主语言前,首先需要对Go语言做下定性。在接触Go前,可能给人的印象(至少是我),Go是一门脚本语言。看了 官方文档 ,才知道Go是一门高级语言。与C++相比,它有以下优势: 面向接口的编程没有C++复杂的面向对象语法,如类、继承、多态、虚函数等等。Go中只有结构与接口,从语言层面上,直接指导功能与功能间的解耦。直接且语法简单 提供语言反射机制提供

范安崇的博客 9560

android.app.RemoteServiceException: Bad notification for startForeground

解决方法是 在 Android 8.0上 创建一个 NotificationChannel,代码如下。

代码小疯子 3861

统计学习导论(ISLR) 第四章分类算法课后习题

统计学习导论(ISLR) 参考资料: The Elements of Statistical Learning An Introduction to Statistical Learning 统计学习导论(ISLR)(二):统计学习概述 统计学习导论(ISLR)(三):线性回归 统计学习导论(ISLR)(四):分类 ISLR统计学习导论之R语言应用(二):R语言基础 ISLR统计学习导论之R语言应用(三):线性回归R语言代码实战 ISLR统计学习导论之R语言应用(四):分类算法R语言代码实战 统计学习导论

阿里云专家博主、数据科学领域优质创作者、统计er在读 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

《第一行代码》第十章ServiceBestPractice出现错误:安卓开发8.1以上系统启动服务和通知报错

错误大致如下:Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification 原因:在8.0以前,安卓的通知是没有进行分类的,为了进一步优化管理通知,Google在发布android 8 时对通知做了修改优化,出现了通知渠道功能。具体原理可见:在An...

weixin_43633568的博客 1000

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Android 8通过startService引起crash。Bad notification for startForeground:... invalid channel for service

android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification: Notification(channel=null pri=0 contentView=null vibrate=null sound=null ...

weixin_42602900的博客 1306

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android Crash:Bad notification for startForeground

Android 8.0开始Notification 需要指定一个channel,当target大于26时,这个channel需要进行系统注册,否则会crash,crash信息如下: android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: inval...

hongye_main的专栏 6538

android引入androidx后出现的问题解决

最近在项目里面引入了androidx,在模拟器上运行正常,就发版本了,后来客户反映登录后程序崩溃,查看极光错误统计log发现问题如下: android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service ...

冰天糖葫芦的博客 3926

Android 创建悬停通知栏

Android 在API26之后NotificationCompat.Builder (Context context)被废弃,创建通知需要使用新的构造器NotificationCompat.Builder (Context context, String channelId) so: NotificationManager manager = (NotificationManager) m...

NewActivity的博客 1164

Android发送前台通知的时候犯了个致命错误导致Bad notification for startForeground

Android 创建通知报错 Bad notification for startForeground

打不死的小五 498

报错汇总——ActivityManager: java.lang.RuntimeException: invalid channel for service notification

报错时的写法,NotificationChannel notificationChannel 写在onCreate函数外,在oncreate中定义和初始化channel,改正后如下,不报错。

我的的博客 587

java.lang.RuntimeException: invalid channel for service notification

  在APP中使用台前服务并创建通知,发现报错了——   代码本身应该是没问题的,因为是照着Demo仿写的,看来是环境出了问题,运行在Android Q(API29)上就会出一些乱七八糟的问题。在查阅了Android文档之后发现原本的NotificationCompat.Builder (Context context)被废弃,在API26之后,创建通知需要使用新的构造器Notification...

大山喵写博客的地方 9249

【Debug-Notification】RemoteServiceException: Bad notification for startForeground...

写了一个前台通知,在Android5.0设备上测试没问题,换到8.0之后报错: android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification: Notific...

dandelionela的博客 7262
上一篇: Android Error while Launching activity
下一篇: android 高德地图打包获取发布版安全码SHA1
书信一封~
博客等级 码龄10年 11粉丝 40原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值