iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android中通过Notification&NotificationManager实现消息通知
  • 363
分享到

Android中通过Notification&NotificationManager实现消息通知

notificationAndroid 2022-06-06 09:06:55 363人浏览 安东尼
摘要

notification是一种让你的应用程序在没有开启情况下或在后台运行警示用户。它是看不见的程序组件(Broadcast Receiver,Service和不活跃的Activ

notification是一种让你的应用程序在没有开启情况下或在后台运行警示用户。它是看不见的程序组件(Broadcast Receiver,Service和不活跃的Activity)警示用户有需要注意的事件发生的最好途径。

  1、新建一个android项目

    我新建项目的 minSdkVersion="11",targetSdkVersion="19"。也就是支持最低版本的3.0的。

  2、习惯性地打开项目清单文件AndroidManifest.xml,添加一个权限:<uses-permission Android:name="android.permission.VIBRATE"/> 不添加不行的。

  3、在布局activity_main.xml中添加几个按钮,样子就大概这样,垂直排版的LinearLayout

具体代码


<LinearLayout xmlns:android="Http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:paddingBottom="@dimen/activity_vertical_margin"
  android:paddingLeft="@dimen/activity_horizontal_margin"
  android:paddingRight="@dimen/activity_horizontal_margin"
  android:paddingTop="@dimen/activity_vertical_margin"
  android:orientation="vertical"
  tools:context=".MainActivity" >
    <Button 
      android:id="@+id/btn_01"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="3.0以前版本的notification,用新的吧"
      android:onClick="click"
      />
    <Button 
      android:id="@+id/btn_02"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="大视图文本通知"
      android:onClick="click"
      />
    <Button 
      android:id="@+id/btn_03"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="大视图图片通知"
      android:onClick="click"
      />
    <Button 
      android:id="@+id/btn_04"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="进度条通知"
      android:onClick="click"
      />
</LinearLayout>

   

4、MainActivity中的代码:


 package com.xin.day__notificationdemo;
  import java.util.Timer;
  import java.util.TimerTask;
  import android.app.Activity;
  import android.app.Notification;
  import android.app.NotificationManager;
  import android.app.PendingIntent;
 import android.content.Intent;
 import android.graphics.BitmapFactory;
 import android.os.Bundle;
 import android.support.v.app.NotificationCompat;
 import android.support.v.app.NotificationCompat.BigPictureStyle;
 import android.support.v.app.NotificationCompat.BigTextStyle;
 import android.support.v.app.NotificationCompat.Builder;
 import android.util.Log;
 import android.view.View;
 public class MainActivity extends Activity {
   //通知的唯一标识,在一个应用程序中不同的通知要区别开来
   private static final int NO = x;
   private static final int NO = x;
   private static final int NO = x;
   private static final int NO = x;
   //进度条要用
   private int progress = ;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
   }
   //click方法,和xml文件中的各个按钮的onClick属性的值要一致
   public void click(View view) {
     //创建NotificationManager
     final NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
     //用switch语句控制四个控件
     switch (view.getId()) {
     case R.id.btn_: {
       Notification notification = new Notification();
       notification.icon = R.drawable.ic_launcher;
       notification.tickerText = "有消息了。。。";
       Intent intent = new Intent(this, MainActivity.class);
       PendingIntent pendingIntent = PendingIntent.getActivity(this, ,
           intent, PendingIntent.FLAG_UPDATE_CURRENT);
       notification.setLatestEventInfo(this, ".以前的通知", "试试而已", pendingIntent);
       notification.when = System.currentTimeMillis();
       notification.defaults = Notification.DEFAULT_ALL;
       notification.flags = Notification.FLAG_AUTO_CANCEL;
       notification.number = ;
       notification.vibrate = new long[]{, };
       manager.notify(NO, notification);
     }
     break;
     case R.id.btn_:{
       //大视图文本通知
       //创建消息构造器,在扩展包
       NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
       //设置当有消息是的提示,图标和提示文字
       builder.setSmallIcon(R.drawable.ic_launcher).setTicker("有新消息了");
       //需要样式
       BigTextStyle style = new BigTextStyle();
       style.setBiGContentTitle("上课通知");//通知的标题
       style.bigText("今天下午要在综B上jsp");//通知的文本内容
       //大视图文本具体内容
       style.setSummaryText("这是正常的课程安排,请各位同学按时上课");
       builder.setStyle(style);
       //显示消息到达的时间,这里设置当前时间
       builder.setWhen(System.currentTimeMillis());
       //获取一个通知对象
       Notification notification = builder.build();
       notification.flags = Notification.FLAG_AUTO_CANCEL;
       //发送(显示)通知
       //notify()第一个参数id An identifier for this notification unique within your application
       //get?意思说,这个通知在你的应用程序中唯一的标识符
       manager.notify(NO, notification);
     }
     break;
     case R.id.btn_:{
       //大视图图片通知
       NotificationCompat.Builder builderPic = new Builder(this);
       builderPic.setSmallIcon(R.drawable.ic_launcher).setTicker("新浪体育提醒");
       //进行设置
       BigPictureStyle pictureStyle = new BigPictureStyle();
       pictureStyle.setBigContentTitle("新浪体育 快船VS骑士 ");
       pictureStyle.bigPicture(BitmapFactory.decodeResource(getResources(), R.drawable.ic_game));
       pictureStyle.setSummaryText(" 快船VS骑士 天王山之战!!!");//不要在意文字
       //设置样式
       builderPic.setStyle(pictureStyle);
       //设置显示的时间
       builderPic.setWhen(System.currentTimeMillis());
       Notification notification = pictureStyle.build();
       notification.flags = Notification.FLAG_AUTO_CANCEL;
       //
       manager.notify(NO, notification);
     }
     break;
     case R.id.btn_:{
       //进度条通知
       final NotificationCompat.Builder builderProgress = new NotificationCompat.Builder(this);
       builderProgress.setSmallIcon(R.drawable.ic_launcher).setTicker("进度条通知");
       builderProgress.setProgress(, progress, false);
       final Notification notification = builderProgress.build();
       //发送一个通知
       manager.notify(NO, notification);
       //创建一个计时器
       Timer timer = new Timer();
       timer.schedule(new TimerTask(){
         @Override
         public void run() {
           Log.i("progress",progress+"");
           while(progress <= ){
             progress ++;
             try {
               Thread.sleep();
             } catch (InterruptedException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
             }
             //更新进度条
             builderProgress.setProgress(, progress, false);
             //再次通知
             manager.notify(NO, builderProgress.build());
           }
           //计时器退出
           this.cancel();
           //进度条退出
           manager.cancel(NO);
           return;//结束方法
         }
       }, );
     }
     break;
     default:
       break;
     }
   }
 }

5、运行:我的虚拟机版本是4.0的(api19),按住通知左(右)滑动就可以让通知小时了。

效果如下:


您可能感兴趣的文章:Android中通知Notification使用实例(振动、灯光、声音)android使用NotificationListenerService监听通知栏消息Android开发 -- 状态栏通知Notification、NotificationManager详解android中创建通知栏Notification代码实例Android 中Notification弹出通知实现代码Android中AlarmManager+Notification实现定时通知提醒功能Android 通知使用权(NotificationListenerService)的使用详解Android中Notification通知提醒Android种使用Notification实现通知管理以及自定义通知栏实例(示例四)Android中的Notification机制深入理解


--结束END--

本文标题: Android中通过Notification&amp;NotificationManager实现消息通知

本文链接: https://www.lsjlt.com/news/26466.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • KotlinService实现消息推送通知过程
    目录建立Service绑定服务小结四大组件,就剩下最后一个Service ,他比较重要,相当于后台服务,基本上大部分的app,都会有一两个这样的服务Service 。 Service...
    99+
    2022-12-08
    Kotlin Service消息推送 Kotlin Service推送通知 Kotlin Service
  • Html5中桌面通知Notification的实现示例
    这篇文章主要介绍Html5中桌面通知Notification的实现示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 实例一个Notificationlet n = new ...
    99+
    2023-06-09
  • vue通知提醒消息怎么实现
    今天小编给大家分享一下vue通知提醒消息怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、Notification这...
    99+
    2023-07-05
  • 怎么在Android中利用google实现一个消息通知功能
    怎么在Android中利用google实现一个消息通知功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 定义一个派生于WakefulBroadcastReceiver的类pu...
    99+
    2023-05-31
    android google roi
  • 怎么使用SAP云平台的Notification服务给Android应用推送通知消息
    今天就跟大家聊聊有关怎么使用SAP云平台的Notification服务给Android应用推送通知消息,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。登录SAP Cloud Platf...
    99+
    2023-06-03
  • CSS3中transition如何实现通知消息轮播条
    这篇文章主要介绍CSS3中transition如何实现通知消息轮播条,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Vue 版本,拷贝到文件即可使用<template>  <!--...
    99+
    2023-06-08
  • HTML5中如何实现Web Notification桌面通知功能
    这篇文章主要介绍了HTML5中如何实现Web Notification桌面通知功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。有的时候我们会在桌面右下角看到这样的提示:这种...
    99+
    2023-06-09
  • Android中怎么使用AlarmManager和Notification实现定时通知提醒功能
    这期内容当中小编将会给大家带来有关Android中怎么使用AlarmManager和Notification实现定时通知提醒功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。AlarmManager简介A...
    99+
    2023-05-30
    android alarmmanager notification
  • 如何在PHP CMS系统中实现消息通知功能
    在如今社交化、信息化的互联网时代,消息通知功能成为了许多网站或系统中必不可少的一部分。对于PHP CMS系统而言,实现消息通知功能不仅可以提升用户体验,而且也可以为网站的运营和维护提供...
    99+
    2024-04-02
  • Android如何实现通知消息水平播放、无限循环效果
    小编给大家分享一下Android如何实现通知消息水平播放、无限循环效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!先看效果图:这个效果也很常见,实现的方法也有很多,我是使用RecyclerView来实现的,觉得还是挺不错...
    99+
    2023-05-30
    android
  • 微信小程序怎样实现滚动消息通知
    这篇文章给大家分享的是有关微信小程序怎样实现滚动消息通知的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。微信小程序实现上下滚动消息提醒,主要是利用swiper组件来实现,swipe...
    99+
    2024-04-02
  • 如何在Android中实现通知栏
    今天就跟大家聊聊有关如何在Android中实现通知栏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、设置通知内容//CHANNEL_ID,渠道ID,Android 8.0...
    99+
    2023-06-15
  • 如何在PostgreSQL中实现异步通知和消息队列功能
    在PostgreSQL中实现异步通知和消息队列功能可以通过使用触发器和通知功能来实现。 创建一个触发器,在需要发送通知的时候触发该...
    99+
    2024-04-02
  • 怎么在HTML5中实现Web Notification桌面右下角通知功能
    这篇文章将为大家详细讲解有关怎么在HTML5中实现Web Notification桌面右下角通知功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。html5桌面通知(Web Notifica...
    99+
    2023-06-09
  • spring整合redis消息监听通知使用的实现示例
    目录问题引入1.1 过期问题描述1.2 常用解决方案分析1.3.整合SpringData Redis开发spring整合redis监听消息1. 配置监听redis消息2 测试消息结合...
    99+
    2024-04-02
  • RTSP 和 RTMP原理 & 通过ffmpeg实现将本地摄像头推流到RTSP服务器
    RTSP 和 RTMP原理 & 通过ffmpeg实现将本地摄像头推流到RTSP服务器 文章目录 RTSP 和 RTMP原理 & 通过ffmpeg实现将本地摄像头推流到RTSP服务器一、流媒体:RTSP 和 RTMP0、参考资料1、R...
    99+
    2023-08-18
    RTSP FFMPEG
  • Android集成MQTT教程:实现高效通信和实时消息传输
        随着物联网技术的不断发展,Android应用程序对于实时通信和消息传输的需求越来越迫切。MQTT(Message Queuing Telemetry Transport)作为一种轻量级的、可扩展的通信协议,被广泛应用于物联网领域。本...
    99+
    2023-09-05
    android
  • Java调用微信客服消息实现发货通知的方法详解
    本文实例讲述了Java调用微信客服消息实现发货通知的方法。分享给大家供大家参考,具体如下:微信文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp14211...
    99+
    2023-05-31
    java ava
  • Android中怎么通过自定义View实现画圆
    Android中怎么通过自定义View实现画圆,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。引入布局<xml version="1.0...
    99+
    2023-05-30
    android
  • android中怎么通过自定义Camera实现拍照
    android中怎么通过自定义Camera实现拍照,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、打开相机a.预览拍摄图片,需用到SurfaceView,并且...
    99+
    2023-05-31
    android camera
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作