android.app.RemoteServiceException: Bad notification for startForeground

这篇具有很好参考价值的文章主要介绍了android.app.RemoteServiceException: Bad notification for startForeground。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

异常如下:

E/AndroidRuntime(22959): FATAL EXCEPTION: main
E/AndroidRuntime(22959): Process: com.example.lota, PID: 22959
E/AndroidRuntime(22959): android.app.RemoteServiceException: Bad notification for startForeground
E/AndroidRuntime(22959): 	at android.app.ActivityThread.throwRemoteServiceException(ActivityThread.java:2080)
E/AndroidRuntime(22959): 	at android.app.ActivityThread.access$2800(ActivityThread.java:258)
E/AndroidRuntime(22959): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2306)
E/AndroidRuntime(22959): 	at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(22959): 	at android.os.Looper.loopOnce(Looper.java:233)
E/AndroidRuntime(22959): 	at android.os.Looper.loop(Looper.java:344)
E/AndroidRuntime(22959): 	at android.app.ActivityThread.main(ActivityThread.java:8205)
E/AndroidRuntime(22959): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(22959): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:589)
E/AndroidRuntime(22959): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1071)
I/BLASTBufferQueue(22959): releaseBufferCallbackThunk bufferId:98608154148877 framenumber:1 blastBufferQueue is dead

android.app.RemoteServiceException: Bad notification for startForeground,Android开发中的点点滴滴,android,java,开发语言
解决方法是 在 Android 8.0上 创建一个 NotificationChannel,代码如下

    /**
     * 启动前台服务
     */
    private void startForeground() {
        String channelId = null;
        // 8.0 以上需要特殊处理
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            channelId = createNotificationChannel("com.youn", "ForegroundService");
        } else {
            channelId = "";
        }
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this, channelId);
        Notification notification = builder.setOngoing(true)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setPriority(PRIORITY_MIN)
                .setCategory(Notification.CATEGORY_SERVICE)
                .build();
        startForeground(1, notification);
    }

    /**
     * 创建通知通道
     * @param channelId
     * @param channelName
     * @return
     */
    @RequiresApi(Build.VERSION_CODES.O)
    private String createNotificationChannel(String channelId, String channelName){
        NotificationChannel chan = new NotificationChannel(channelId,
                channelName, NotificationManager.IMPORTANCE_NONE);
        chan.setLightColor(Color.BLUE);
        chan.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
        NotificationManager service = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        service.createNotificationChannel(chan);
        return channelId;
    }
2 Android 中的 Service

Service 是一种可在后台执行长时间运行操作而不提供界面的应用组件。

服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。

此外,组件可通过绑定到服务与之进行交互,甚至是执行进程间通信 (IPC)。例如,服务可在后台处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序进行交互。

2.1 Android 中的服务分类如下
前台

前台服务执行一些用户能注意到的操作。例如,音频应用会使用前台服务来播放音频曲目。前台服务必须显示通知。即使用户停止与应用的交互,前台服务仍会继续运行。

后台

后台服务执行用户不会直接注意到的操作。例如,如果应用使用某个服务来压缩其存储空间,则此服务通常是后台服务。

绑定

当应用组件通过调用 bindService() 绑定到服务时,服务即处于绑定状态。绑定服务会提供客户端-服务器接口,以便组件与服务进行交互、发送请求、接收结果,甚至是利用进程间通信 (IPC) 跨进程执行这些操作。仅当与另一个应用组件绑定时,绑定服务才会运行。多个组件可同时绑定到该服务,但全部取消绑定后,该服务即会被销毁。文章来源地址https://www.toymoban.com/news/detail-660198.html

到了这里,关于android.app.RemoteServiceException: Bad notification for startForeground的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【android开发-20】android中notification的用法讲解

    1, notification的基本用法 在Android中,通知(Notification)是一种在状态栏上显示的消息提示,用户点击通知后可以展开更多详细信息。以下是基本的通知用法: 1,创建通知 创建通知需要使用Notification类,可以通过以下代码创建一个简单的通知: 2,创建通知通道 从Android 8.0开

    2024年02月04日
    浏览(33)
  • Android 之 Notification (状态栏通知)详解

    本节带来的是Android中用于在状态栏显示通知信息的控件:Notification,相信大部分 学Android都对他都很熟悉,而网上很多关于Notification的使用教程都是基于2.x的,而 现在普遍的Android设备基本都在4.x以上,甚至是5.0以上的都有;他们各自的Notification 都是不一样的!而本节给大家

    2024年02月15日
    浏览(30)
  • Android 开发 错误 Execution failed for task ‘:app:processDebugMainManifest‘.

    在配置文件AndroidManifest.xml中添加代码android:exported=“true” 关于android:exported=\\\"true\\\"的解释: Android相关属性的介绍:android:exported = true 在Activity中该属性用来标示:当前Activity是否可以被另一个Application的组件启动:true允许被启动;false不允许被启动。 android:exported 是Android中的四

    2024年02月10日
    浏览(40)
  • Android13 --- POST_NOTIFICATIONS权限无法关闭

       Android 13(API 级别 33)及更高版本支持用于从应用发送非豁免(包括前台服务 [FGS])通知的运行时权限:POST_NOTIFICATIONS。此更改有助于用户专注于最重要的通知。 通知运行时权限  |  Android 开发者  |  Android Developers    在Android 13的平台,应用如果想发送通知,则要申请

    2024年02月11日
    浏览(24)
  • Android Studio Notification(状态栏通知) 不显示通知 解决

    引言:在学习的过程中,我发现,无论怎么修改,甚至是直接复制了大佬的代码,我的程序都不能正确的弹出状态栏通知,在经过一晚上的纠缠后,终于找到了原因 通知不显示 可能由多种原因引起: 通知权限:确保你的应用已经获得了正确的通知权限。在Android设备上,用户

    2024年02月16日
    浏览(35)
  • Android Stdio Execution failed for task ‘:app:compileDebugKotlin‘ 报错解决

    具体报错信息如下: 很显然,这是一个版本冲突问题,compileDebugJavaWithJavac版本是1.8,compileDebugKotlin是17。我们只需将这两个版本改成同一个即可,在build.gradle中添加以下代码: 如下图所示:

    2024年04月16日
    浏览(25)
  • Android开发之Notification(实现消息弹窗、提示音以及点击事件)

    通知管理器(NotificationManager)类是一个通知管理器,这个对象是由系统维护的服务,是以单例模式的方式获得,所以一般并不直接实例化这个对象。在 Activity中,可以使用 Activity.getSystemService(String) 方法获取通知管理器对象, Activity.getSystemService(String) 方法可以通过 Android系统

    2024年02月01日
    浏览(28)
  • Android Could not resolve all files for configuration ‘:app:debugRuntimeClasspath‘

    Could not resolve all files for configuration ‘:app:debugRuntimeClasspath’. Could not find com.just.agentweb:agentweb-androidx:4.1.4. Searched in the following locations: 打开settings.gradle文件,加入代码 maven { url ‘https://maven.google.com’ } 如下所示: 重新编译看问题是否解决,如果没有再接着往下看. 点击File-Sett

    2024年02月12日
    浏览(56)
  • 【React Native】运行Android时发生Required for building and installing your app on Android

    Android SDK - Required for building and installing your app on Android Versions found: N/A Version supported: 33.0.0 查看gradle-wrapper.properties内的gradle版本是否存在 可以配置为本地路径 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=file:///D:/Deve

    2024年02月03日
    浏览(49)
  • 解决kotlin写Android项目编译报Execution failed for task ‘:app:kaptDebugKotlin‘.异常

    解决kotlin写Android项目编译报Execution failed for task ‘:app:kaptDebugKotlin‘.异常 遇到的报错标题也是app:kaptDebugKotlin,具体报错信息不是,也可以试一下这个方法。 尝试办法:将kapt改为annotationProcesser,并同步项目 ,我的项目使用了databinding和arouter,原本是这样引入的: 上面这样写

    2024年02月05日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包