`

android notification和notificationmanager使用

阅读更多

notification和notificationmanager的使用

        1、获取系统级的服务notificationmanager

        //String android.content.Context.NOTIFICATION_SERVICE

        String service = NOTIFICATION_SERVICE;
        NotificationManager nm = (NotificationManager)getSystemService(service);
        
        2、实例化Notification
        Notification n = new Notification();
        // 设置显示图标,该图标会在状态栏显示
        int icon = n.icon = R.drawable.icon;
        // 设置显示提示信息,该信息也会在状态栏显示
        String tickerText = "Test Notification";
        // 显示时间
        long when = System.currentTimeMillis();
        n.icon = icon;
        n.tickerText = tickerText;
        n.when = when;

        // 也可以通过这种构造方法来设置
        Notification n1 = new Notification(icon, tickerText, when); 
        
        3、实例化Intent
        Intent intent = new Intent(this, MainActivity_Temp.class);
        // 获得PendingIntent
        PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
        // 设置事件信息
        n.setLatestEventInfo(this, "My Title", "My Content", pi); 

 

        //具体事件 暂时不知道干什么的
        n.defaults |= Notification.DEFAULT_SOUND;
        n.sound = Uri.parse("file:///sdcard/sound.mp3");
        n.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");

        n.defaults |= Notification.DEFAULT_VIBRATE;
        long[] vibrate = {0,50,100,150};
        n.vibrate = vibrate; 
        n.defaults |= Notification.DEFAULT_LIGHTS;
        n.ledARGB = 0xff00ff00;
        n.ledOnMS = 300;
        n.ledOffMS = 1000;
        n.flags |= Notification.FLAG_SHOW_LIGHTS; 
        

         4、发通知
        // 标示该通知的ID
        int ID = 1;
        // 发出通知
        nm.notify(ID, n);

 

利用notification和notificationmanager来实现可视化的消息显示。

 

package com.amaker.ch08.app;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore.Audio;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class TestNotificationmanager extends Activity {
 // 声明按钮
 private Button sendBtn,cancelBtn;
 private Notification n ;
 private NotificationManager nm; 
 // Notification标示ID
 private static final int ID = 1;
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
 //
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  
   // 实例化按钮       
  sendBtn = (Button)findViewById(R.id.sendButton01);       
  cancelBtn = (Button)findViewById(R.id.cancelButton02);
  
  // 获得NotificationManager实例       
  String service = NOTIFICATION_SERVICE;       
  nm = (NotificationManager)getSystemService(service); 
  
  // 实例化Notification       
  n = new Notification();  
  
  // 设置显示图标,该图标会在状态栏显示       
  int icon = n.icon = R.drawable.happy; 
  
  // 设置显示提示信息,该信息也会在状态栏显示      
  String tickerText = "Test Notification";        
  // 显示时间       
  long when = System.currentTimeMillis();       
  n.icon = icon;       
  n.tickerText = tickerText;       
  n.when = when;   
  
  // 为按钮添加监听器       
  sendBtn.setOnClickListener(sendListener);       
  cancelBtn.setOnClickListener(cancelListener);
  
 }
 
 private OnClickListener sendListener = new OnClickListener(){
   @Override       
   public void onClick(View v){
    // 实例化Intent           
    Intent intent = new Intent(TestNotificationmanager.this, TestNotificationmanager.class);            
    // 获得PendingIntent           
    PendingIntent pi = PendingIntent.getActivity(TestNotificationmanager.this, 0, intent, 0);            
    // 设置事件信息           
    n.setLatestEventInfo(TestNotificationmanager.this, "My Title", "My Content", pi);
   
//    n.defaults |= Notification.DEFAULT_SOUND;
//       n.sound = Uri.parse("file:///sdcard/love.mp3");
//          n.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");
//
//          n.defaults |= Notification.DEFAULT_VIBRATE;
//          long[] vibrate = {0,50,100,150};
//          n.vibrate = vibrate;
//          n.defaults |= Notification.DEFAULT_LIGHTS;
//          n.ledARGB = 0xff00ff00;
//          n.ledOnMS = 300;
//          n.ledOffMS = 1000;
//          n.flags |= Notification.FLAG_SHOW_LIGHTS;

    // 发出通知           
    nm.notify(ID, n);
   }
 };
 
 private OnClickListener cancelListener  = new OnClickListener(){
   @Override       
   public void onClick(View v){
    /// 取消通知           
    nm.cancel(ID);
   }
 };
}

 

在main.xml布两个按钮,在res下建一个drawable文件夹放上happy.jpg见附件

 

效果:
出现图标和字符通知
 

  • 大小: 520 Bytes
  • 大小: 12.9 KB
分享到:
评论

相关推荐

    android Notification通知消息学习(NotificationManager)

    这篇博文“android Notification通知消息学习(NotificationManager)”显然是探讨如何有效地利用NotificationManager来创建和管理Android的通知。NotificationManager是Android提供的一个系统服务,用于管理和显示...

    android notification完全解析Demo

    创建完Notification后,使用NotificationManager发送通知: ```java NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); manager.notify(NOTIFICATION_ID, ...

    Android notification+Service实时更新

    在Android开发中,`Notification`、`Service`和`BroadcastReceiver`是三个核心组件,它们在许多场景下都有着重要的作用,特别是在实现应用后台运行、实时更新等任务时。本项目"Android notification+Service实时更新...

    android Notification使用大全

    在Android系统中,Notification是应用与用户交互的重要方式,它可以在状态栏中显示信息,即使用户不在使用应用时也能提醒用户有新的事件发生。本文将深入探讨如何在Android中使用Notification,包括基本用法、自定义...

    Android Notification

    "Android Notification"这一主题聚焦于如何创建和管理用于显示音乐下载进度的通知。在描述中提到的"Notification显示音乐下载的界面",意味着我们将讨论如何构建一个能够实时更新下载进度的定制通知。 首先,要创建...

    AndroidNotification

    "AndroidNotification"项目旨在整合Android平台上所有Notification的使用方法,这对于开发者来说是一个宝贵的资源,能够帮助他们理解和实践各种通知功能。 首先,我们来详细了解一下Android中的Notification。...

    Android Notification的使用

    在发送通知时,通常会使用NotificationManager的notify方法,传入通知的ID和创建好的Notification对象。ID用于区分不同的通知,如果重复使用同一个ID,旧的通知会被新通知替换。 关于"工具"标签,可能指的是Android...

    Android Notification更新

    自Android Oreo(8.0)以来,Notification有了更严格的管理和分组,每个通知必须归属于一个特定的`NotificationChannel`。创建`NotificationChannel`时,需指定ID、名称和重要性,例如: ```java ...

    android Notification使用例子

    本项目是一个基于Android 2.3(Gingerbread)版本的小实例,旨在帮助开发者学习如何使用Notification API创建和管理通知。 首先,创建Notification需要使用`NotificationCompat.Builder`类,它是Android Support ...

    Android应用源码之notification.zip

    - 在Android系统中,Notification通过NotificationManager服务进行管理,应用通过该服务发送和取消通知。 - 通知会出现在状态栏,当用户下拉时显示详细信息,点击可以启动对应的Activity或者执行预定义的动作。 2...

    Android开发 — 状态栏通知Notification、NotificationManager详解

    本文将详细介绍如何使用`Notification`和`NotificationManager`来创建、更新和管理状态栏通知。 首先,`NotificationManager`是用于管理状态栏通知的系统服务,它负责发送通知以及清除已发送的通知。获取`...

    Android NOtification 使用

    Notification分为多种类型,包括Toast、StatusBar Notification和Dialog Notification,每种都有其特定的使用场景。 1. Toast Notification: Toast是一种短暂的通知方式,它在屏幕上显示一段时间后自动消失,不会...

    Android Notification和WebView结合的源码

    总结一下,将Android的Notification与WebView结合,可以让用户在不影响当前操作的情况下接收和查看网页信息。通过创建合适的Notification和对应的PendingIntent,以及一个承载WebView的Activity,我们可以实现这一...

    android Notification 例子

    本教程将深入讲解如何在Android中创建和使用Notification,并提供源码示例。 首先,我们需要了解Notification的基本结构。一个Notification通常包括以下组件: 1. **通知标题(title)**:简短地概述通知的主要...

    Android实现Notification的通知栏常驻.zip

    4. **NotificationManager**: 使用系统的`NotificationManager`服务来发布和管理Notification。 二、创建Notification Channel ```java // 创建Channel NotificationChannel channel = new NotificationChannel...

    Notification与NotificationManager详细介绍

    在Android系统中,发一个状态栏通知还是很方便的。下面我们就来看一下,怎么发送状态栏通知,状态栏通知又有哪些参数可以设置?... NotificationManagernm=(NotificationManager)getSystemService(NOTIFICATION_SERV

    android Notification详解

    BarManagerService 中对 ...Notification 的数据结构和功能处理流程展示了 Android 如何在系统层面上管理和呈现通知,以及如何与用户进行有效的交互。理解这一机制对于开发者优化用户体验和避免不必要的干扰至关重要。

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

    本教程将详细介绍如何利用Notification和NotificationManager在Android中创建各种类型的通知。 首先,为了实现通知功能,我们需要在AndroidManifest.xml文件中添加振动权限,因为通常情况下,通知会伴随振动或声音...

Global site tag (gtag.js) - Google Analytics