【Android】将服务变成前台服务时的问题 5C

PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
Notification notification = new NotificationCompat.Builder(this,"default")
.setContentTitle("This is content title")
.setContentText("This is content text")
.setWhen(System.currentTimeMillis())
// .setSmallIcon(R.mipmap.ic_launcher)
//.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
.setContentIntent(pendingIntent)
.build();
startForeground(startId, notification);

点击之后,抛出异常

FATAL EXCEPTION: main
Process: com.example.servicetest, PID: 2046
android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification: Notification(channel=default pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x40 color=0x00000000 vis=PRIVATE)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1737)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)


求解… 源码来源于《第一行代码》P360

1个回答

已解决…… Android.O 及以上需要加NotificationChannel - - 果然网上都有就是不好找啊

qinkang1993
qinkangdeid 回复: 已经解决了 谢谢
9 个月之前 回复
qinkang1993
qinkangdeid 你好 同样的问题 这个channelId在哪里加?
9 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android之服务(四)前台服务
Android之服务(四)前台服务 一,简介 服务几乎都是在后台运行的,一直以来它都是默默地做着辛苦的工作。但是服务的系统 优先级还是比较低的,当系统出现内存不足的情况时,就有可能会回收掉正在后台运行的服 务。如果你希望服务可以一直保持运行状态,而不会由于系统内存不足的原因导致被回收, 就可以考虑使用前台服务。前台服务和普通服务最大的区别就在于,它会一直有一个正在运 行的图标在系统的状
android前台服务
公司的业务中有一个长时间后台定位并且上传定位的功能,在android 6.0之后用双进程保活的这些黑科技是行不通了,只有用谷歌官方的方法,用前台服务来实现,类似于QQ音乐这种。 首先要来验证一下这个方案能不能长时间使应用在后台保活,下来用两台手机,方别打开前台服务和一些其他app,全部退到后台,放置周末两天后,再来查看结果。 首先,在锁屏界面,前台的图标都还存在,下面看看app是否还活着。 华为:...
前台服务,让服务可见
public class MyService extends Service {//需要在manifest文件中注册 //自身调用stopself()也可以停止服务运行 public MyService() { } @Override public void onCreate() { super.onCreate(); L...
Android 服务之startService和bindService以及前台服务的创建
android服务一般用来做一些,后台操作,数据处理。比较常用。 android服务包括前台服务和后台服务. 前台服务一般用来做音乐的后台播放,可以在通知栏显示。 前台服务的创建:public class ForegroundService extends Service {@Override public void onCreate() { private Notif
提高服务运行级别(前台服务)
@Override public void onCreate() { //提高服务运行级别 Notification noti = new Notification(); noti.icon = R.drawable.ic_launcher; Intent intent = new Intent(); intent.setAction("com.lqr.tes
Android Service学习笔记--前台服务
-
Android音乐播放前台服务
AndroidStudio音乐播放前台服务,可播放音乐
Android:设置前台服务
前台服务是那些被认为用户知道(用户所认可的)且在系统内存不足的时候不允许系统杀死的服务。前台服务必须给状态栏提供一个通知,它被放到正在运行(Ongoing)标题之下——这就意味着通知只有在这个服务被终止或从前台主动移除通知后才能被解除。 在一般情况下,Service几乎都是在后台运行,一直默默地做着辛苦的工作。但这种情况下,后台运行的Service系统优先级相对较低,当系统内存不足时,在后台运行的...
Android创建一个前台服务
在activity中启动服务 Intent intent = new Intent(this, MyService.class); startService(intent); 新建一个服务类 public class MyService extends Service{ @Nullable @Override public IBinder onBind(Intent inte
Android四大组件之Service--前台服务
如果你希望服务可以一直保持运行状态,而不会由于系统的内存不足的原因导致被回收,就可以考虑使用前台服务, 前台服务与普通服务最大的区别在于,它会一直有一个正在运行的图标在系统的状态栏显示,下拉状态栏后可以看到更加详细的信息,非常类似于通知的效果当然有时候你也可能不仅仅是为了防止服务被回收掉才使用前台服务的,比如墨迹天气,它的服务在后台更新天气数据的同时,还会在系统状态栏一直显示当前的天气信息1.讲解服
【Android学习笔记】使用前台服务
(写此博客,只是为了记录自己学习Android的学习进程,自娱自乐,内容大都出自 Android第一行代码) 后台服务的系统优先级较低,当系统出现内存不足的情况时,有可能被回收。如果你希望服务可以一直保持运行状态,而不会由于系统内存不足原因导致被回收,就可以考虑使用前台服务。 前台服务会一直有一个正在运行的图标显示在通知栏,就像一些天气应用,在后台更新天气数据,而在通知栏中进行实时更新
高效管理 Android 前台服务
作者 / Keith Smyth本文为 Android 电量管理系列连载的第四篇,希望可以为各位开发者提供设备续航方面的战略洞见和实践指南。Android 进程管理机制作为一款移动端操作系统,Android 在设计之初就考虑到了诸如内存和电量一类的资源限制问题。因此,系统在内存吃紧的情况下会关闭部分进程,以此来为优先级更高的任务腾出运行空间。那么系统是如何评判优先级高低的呢?判断标准其实很简单,关...
android实现前台服务
代码可以直接运行,实现了android平台服务的前台化,并以Notification显示到右下脚。代码可以在任何版本API运行。考虑了各种版本的API情况。内部使用了发射机制。 简略说下服务前台化的好处:即提高了服务的优先级别,普通服务是默认后台运行的。当android系统发现内存不够时,极易自动killed掉你的服务。如果,改用前台则不易被killed,当然,内存极度低时同样会killed。 本代码来源于对android的apidemos的研究。
前台服务
服务几乎都是在后台运行的,一直以来它都是默默地做着辛苦的工作。但是服务的系统优先级还是比较低的,当系统出现内存不足的情况时,就有可能会回收掉正在后台运行的服务。如果你希望服务可以一直保持运行状态,而不会由于系统内存不足的原因导致被回收,就可以考虑使用前台服务。前台服务和普通服务最大的区别就在于,它会一直有一个正在运行的图标在系统的状态栏显示,下拉状态栏后可以看到更加详细的信息,非常类似于通知的效果。
Android读书笔记(八) 前台服务、IntentService
1.前台服务   当系统内存不足时,有可能会回收掉服务...... 2.IntentService 当在服务中需要处理一些耗时的任务,并且完成后自动停止。
android如何让后台服务service不被杀死(设置前台服务)
笔者上篇做了一个定时提醒的小应用,但是最后遗留了一个问题,那就是如果设置提醒的间隔时间过长,那么计时的service便会被android系统kill掉。(主要是由于android自带内存清理)在进行了大量的查阅和测试后,笔者终于解决了该问题:当然,在此也要稍微提一下,笔者只测试了,在以一小时为左右的时间内可以不被杀死,还没有测试2个小时以上的情况,更没有测试以天为单位的时间,具体测试如下:(ite...
Android之Service(五):使用前台服务
服务几乎都是在后台运行的,一直以来它都是默默地做着辛苦的工作。但是服务的系统优先级还是比较低的,当系统出现内存不足的情况时,就有可能会回收掉正在后台运行的服务。如果希望服务可以一直保持运行状态,而不会由于系统内存不足的原因导致被回收,就可以考虑使用前台服务。有些项目由于特殊的需求会要求必须使用前台服务,比如说墨迹天气,它的服务在后台更新天气数据的同时,还会在系统状态栏一直显示当前的天气信息。 前台
Service之前台服务、IntentService、Activity与服务进行通信
1.使用前台服务 服务几乎都是在后台运行的, 一直以来它都是默默地做着辛苦的工作。 但是服务的系统优先级还是比较低的, 当系统出现内存不足的情况时, 就有可能会回收掉正在后台运行的服务。如果你希望服务可以一直保持运行状态,而不会由于系统内存不足的原因导致被回收,就可以考虑使用前台服务。 前台服务和普通服务最大的区别就在于, 它会一直有一个正在运行的图标在系统的状态栏显示, 下拉状态栏后可以看到更...
进程保活-将Service设置为前台服务
//传入notifycation对象的作用是,当将服务设为前台服务后,会在状态栏显示一条通知 public void showCXBRunning() { NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification ...
Android四大组件——Service后台服务、前台服务、IntentService、跨进程服务、无障碍服务、系统服务
Android四大组件——Service后台服务、前台服务、IntentService、跨进程服务、无障碍服务、系统服务
第一行代码 第10章 服务 -- 前台服务与IntentService
1、前台服务 与后台服务区别:它会一直有一个正在运行的图标在系统的状态栏显示,类似通知。创建前台服务 在服务的onCreate()方法中添加一下代码: Intent intent = new Intent(this, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivit
前台服务的使用
由于服务的系统优先级比较低,当内存不足时,有可能回收掉正在后台运行的服务。如果希望服务一直运行,可以考虑使用前台服务。
使用前台服务
       服务几乎都是在后台运行的,移植依赖它都是默默的做着辛苦的工作,但是服务的优先级还是比较低的,当系统出现内存不足的情况时,就有可能会回收掉正在后天运行的服务。如果你希望服务可以一直保持运行状态,而不会由于内存不足的原因导致被回收,就可以考虑使用前台服务。前台服务和普通服务的最大区别就在于,它会一直有一个正在运行的图标在系统的状态栏显示,下拉状态栏后可以看到更加详细的信息,非常类似于通知...
service前台服务
前台服务和普通服务的最大区别在于,它会一直有一个正在运行的图标在系统的状态栏 显示,下拉状态栏后可以看到更加详细的信息,非常类似于通知的效果。比如墨迹天气 ,它的服务在后台更新天气数据的同时,还会在系统状态栏一直显示当前的天气信息。
android常用的工具类——将图形变成圆形
本文主要讲如何将项目中的图片设置成圆形来显示,直接用封装好的如下方法即可 public static Bitmap getRoundBitmap(Bitmap bitmap) { int width = bitmap.getWidth(); int height = bitmap.getHeight(); float roundPx;
Android Service的理论探讨与实践(三)前台服务
前言  过了个新年,继续这系列博客的书写 正文  1.为什么需要前台服务? 一般情况下,Service在后台运行,默默无闻的做着自己的工作。但是在后台运行的Service,其优先级别较低,在系统资源不做,比如内存不够或者手机长时间息屏的情况下,后台服务会被杀死。在这种情况下就不能服务运行的长期性,而前台服务则弥补了这不足,把服务设置成前台服务之后,服务的优先级就提高了,当内存不足的时候,不...
Android排坑:Android8.0后前台服务的变更
android 9.0上使用前台服务,需要添加权限 <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
Android中利用前台服务白色保活
进程优先级 进程 我们都知道,每一个APP进程(process)都拥运行在独立的虚拟机(virtual machine)中,这样就保证了每个APP的独立。在系统资源紧张的时候会选择一部分进程杀掉释放内存,那么系统是如何选取杀掉哪些留下哪些呢?这就涉及到进程的优先级。 优先级 为了对运行的进程进行统一管理,系统根据进程的不同状态进行了分离,分为如下五个状态: 前台进程 (Foreground pro...
android 怎么将inflater的view变成图片
[color=#FF0000]LayoutInflater inflater=LayoutInflater.from(context);rnView view=inflater.inflate(R.layout.main, null);rnTextView tv=(TextView)view.findViewById(R.id.mytextview);rntv.setText("gggggggggggg");rntv.setTextColor(Color.BLACK);rnrnBitmap tmpBmp = Bitmap.createBitmap(400,600,Bitmap.Config.ARGB_8888); rnCanvas mCanvas = new Canvas(tmpBmp);rnview.draw(mCanvas);rncanvas.drawBitmap(tmpBmp,0, 0, null); rnrnrn可是画出来的是布局,里面的textview和别的控件都没有显示,怎么回事[/color]
Android-ProgressButtonAndroid将Android按纽变成加载进度条
Progress Button Android将Android按纽变成加载进度条
Android Service详解(八)---前台服务详解
Android Service详解(八)---前台服务详解 这是第八篇文章主要讲的是如何实现一个前台服务 回顾可以到第一篇文章从头了解Service: Android Service详解(一)---概述和StartService 一、首先我们要知道什么是前台服务 前台服务被认为是用户主动意识到的一种服务,因此在内存不足时,系统也不会考虑将其终止。 前台
记录一次android前台服务demo的使用过程
什么是前台服务前台服务是那些被认为用户知道(用户认可所认可)且在系统内存不足的时候不允许系统杀死的服务。前台服务必须给状态栏提供一个通知,它被放到正在运行(Ongoing)标题之下——这就意味着通知只有在这个服务被终止或从前台主动移除通知后才能被解除1.正式使用使用notification在service的onStartCommand的方法中 //实例化通知栏构造器Notificat...
weblogic服务变成系统服务
本人想weblogic服务变成系统服务,可以让服务器重起之后自动开 weblgoic,请高手指点......
ASP.NET 图书的后台管理与前台服务
实现后台对图书的管理,从而进行编辑发布与删除,实现购物者在购物车方面的功能。
android8.0以上版本的前台服务
android8.0以上版本的前台服务 本人是小白,最近在学习郭林老师的第一行代码的第二版时,在第10章的前台服务的小节里面,发现在我的模拟器上运行不了,然后找了许多大神写的博客,发现原因是安卓8.0之后的前台服务需要使用startForegroundService()函数启动服务,然后按照大神的博客里面的步骤做了还不行,然后查看了一下错误日志, 下面是程序崩溃时打印的error日志中的一部分 2...
将软键盘变成搜索
首先需要在edittext里面配置 android:imeOptions="actionSearch" android:imeActionLabel="@string/search" android:singleLine="true" 然后在java代码里面监听软键盘搜索键的回调 binding.searchText.setOnEditorActionList
将图片变成圆圈
将一个方形的图片裁剪成一个圆形的图片进行展示。
将win7变成wifi热点
将win7变成wifi热点 笔记本 共享上网 手机等,详细的操作步骤
宾馆前台服务java程序
在ECLIPS中编译的用于实现宾馆前台订房退房
关于前台服务去除通知
只要用一个服务启动另一个服务,在被启动的服务里面开启开启前台服务,为其设置一个通知,然后在该服务开始真正运行之前调用stopself()即可,覆盖onDesreoy()调用stopForegroud()。原因是两个服务共用一个通知,杀掉一个剩下一个便是没有通知的前台服务。
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池