kotlin实现通知栏提醒功能示例代码

 更新时间:2019年08月11日 11:18:10   作者:男儿当自强  
这篇文章主要给大家介绍了关于kotlin实现通知栏提醒功能的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用kotlin具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

一、概述

2019年英雄联盟LPL赛区赛季赛打得火热,作为一个RNG粉丝,想通过app实现RNG赛程提醒,于是就有了这次技术实践。我在网上找了很久,几乎没找到使用kotlin实现通知栏提醒的合适的文章,于是就到安卓官网看文档,一边翻译一边研究,最终实现了一个简单的通知栏提醒。又研究了定时任务,但没有成功,还望看到的大佬给个锦囊。

二、环境

kotlin版本:1.3.31

android studio版本:3.4.1

在华为手机android 9 API28 环境下测试通过

三、实现

1、创建一个 Empty Activity 项目后,编辑 activity_main.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="vertical"
 xmlns:android="http://schemas.android.com/apk/res/android">
 <Button
  android:onClick="showNotification"
  android:text="显示通知"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"/>
</LinearLayout>

2、在类  MainActivity 创建 showNotification 方法

fun showNotification(view: View)
{
 // CHANNEL_ID:通道ID,可在类 MainActivity 外自定义。如:val CHANNEL_ID = 'msg_1'
 val builder = NotificationCompat.Builder(this, CHANNEL_ID)
  .setSmallIcon(R.mipmap.ic_launcher)
  .setContentTitle("RNG赛程提醒")
  .setContentText("今天晚上19:00,RNG对阵IG")
  // 通知优先级,可以设置为int型,范围-2至2
  .setPriority(NotificationCompat.PRIORITY_MAX )
 // 显示通知
 with(NotificationManagerCompat.from(this)) {
  notify(1, builder.build())
 }
}

3、为了兼容Android 8.0及更高版本,传递通知之前,必须在系统中注册应用程序的通知通道。创建好后在 onCreate 函数内调用

private fun createNotificationChannel()
{
 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
  val name = getString(R.string.channel_name)
  val descriptionText = getString(R.string.channel_description)
  // 提醒式通知(横幅显示),不过大部分需要手动授权
  val importance = NotificationManager.IMPORTANCE_HIGH
  val channel = NotificationChannel(CHANNEL_ID, name, importance).apply {description = descriptionText}
  // 注册通道(频道)
  val notificationManager: NotificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
  notificationManager.createNotificationChannel(channel)
 }
}

四、总结

对于报错部分,可以使用 Alt+Enter 组合键完成错误更正。

详细的通知使用,请转到官网研究。developer.android.google.cn/training/no

初次发文,若有不足的地方,还请指正。成品截图

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

相关文章

  • Android实现apk插件方式换肤的实例讲解

    Android实现apk插件方式换肤的实例讲解

    在本篇文章里小编给大家整理的是关于Android实现apk插件方式换肤的实例代码以及相关知识点,有需要的朋友们学习下。
    2019-10-10
  • Android 状态栏的设置适配问题详解

    Android 状态栏的设置适配问题详解

    这篇文章主要介绍了Android 状态栏的设置适配问题详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • Android如何判断当前点击位置是否在圆的内部

    Android如何判断当前点击位置是否在圆的内部

    这篇文章主要为大家详细介绍了Android如何判断当前点击位置是否在圆的内部,解析拖动圆形控件之内响应触摸事件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Android编程之SurfaceView学习示例详解

    Android编程之SurfaceView学习示例详解

    这篇文章主要介绍了Android编程之SurfaceView学习示例,结合实例分析了SurfaceView的功能、使用方法与注意事项,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • Flutter 开发一个登录页面

    Flutter 开发一个登录页面

    登录页面在 App 开发中非常常见,本篇借登录页面的开发介绍了文本框 TextField组件的使用,同时使用文本框的装饰属性实现了个性化文本框设置。
    2021-06-06
  • 详解Android创建Handler的必备知识点

    详解Android创建Handler的必备知识点

    本篇文章主要介绍Handler中需要了解的几个必备知识点,比如Handler创建、异步Handler是个啥及如何创建,感兴趣的小伙伴快跟随小编一起学习一下
    2022-10-10
  • Flutter实现牛顿摆动画效果的示例代码

    Flutter实现牛顿摆动画效果的示例代码

    牛顿摆大家应该都不陌生,也叫碰碰球、永动球(理论情况下),那么今天我们用Flutter实现这么一个理论中的永动球,可以作为加载Loading使用,需要的可以参考一下
    2022-04-04
  • Android 解析XML 文件的四种方法总结

    Android 解析XML 文件的四种方法总结

    本文将详细介绍用解析XML的四种方法,XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML,这里对几种解析XML 的方法做详解
    2016-07-07
  • Android开发笔记之:Handler Runnable与Thread的区别详解

    Android开发笔记之:Handler Runnable与Thread的区别详解

    本篇文章是对在Android中Handler Runnable与Thread的区别进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Android Studio实现简易计算器源码

    Android Studio实现简易计算器源码

    这篇文章主要为大家详细介绍了Android Studio实现简易计算器源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05

最新评论