详解Android中Notification的使用方法

在消息通知的时候,我们经常用到两个控件Notification和Toast。特别是重要的和需要长时间显示的信息,用Notification最合适不过了。他可以在顶部显示一个图标以标示有了新的通知,当我们拉下通知栏的时候,可以看到详细的通知内容。
      最典型的应用就是未看短信和未接来电的显示,还有QQ微信,我们一看就知道有一个未接来电或者未看短信,收到QQ离线信息。同样,我们也可以自定义一个Notification来定义我们自己的程序想要传达的信息。

Notification我把他分为两种,一种是默认的显示方式,另一种是自定义的,今天为大家讲述默认的显示方式
1、程序框架结构图如下


2、布局文件 main.xml 源码如下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
<TextView
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:gravity="center"
 android:textColor="#EEE"
 android:textStyle="bold"
 android:textSize="25sp"
 android:text="NotificationDemo实例" />
<Button
 android:id="@+id/btnSend"
 android:text="send notification"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center"/>
</LinearLayout>

3、MainActivity.java源码如下:

package com.andyidea.notification; 

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button; 

public class MainActivity extends Activity {
 private Button btnSend; 

 //定义BroadcastReceiver的action
 private static final String NotificationDemo_Action = "com.andyidea.notification.NotificationDemo_Action"; 

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main); 

  btnSend = (Button)findViewById(R.id.btnSend);
  btnSend.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    Intent intent = new Intent();
    intent.setAction(NotificationDemo_Action);
    sendBroadcast(intent);
   }
  });
 } 

}

4、布局文件 secondlayou.xml 源码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <TextView
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:gravity="center"
 android:textColor="#EEE"
 android:textStyle="bold"
 android:textSize="25sp"
 android:text="显示通知界面" />
<Button
 android:id="@+id/btnCancel"
 android:text="cancel notification"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center" />
</LinearLayout>

5、SecondActivity.java源码如下:

package com.andyidea.notification; 

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button; 

public class SecondActivity extends Activity { 

 private Button btnCancel;
 //声明Notification
 private Notification notification;
 //声明NotificationManager
 private NotificationManager mNotification;
 //标识Notification的ID
 private static final int ID = 1; 

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.secondlayout); 

  btnCancel = (Button)findViewById(R.id.btnCancel);
  //怎样获得NotificationManager的实例?
  String service = NOTIFICATION_SERVICE;
  mNotification = (NotificationManager)getSystemService(service); 

  //获得Notification的实例
  notification = new Notification(); 

  //设置该图标 会在状态栏显示
  int icon = notification.icon = android.R.drawable.stat_sys_phone_call;
  //设置提示信息
  String tickerText = "Test Notification";
  //设置显示时间
  long when = System.currentTimeMillis();
  notification.icon = icon;
  notification.tickerText = tickerText;
  notification.when = when; 

  Intent intent = new Intent(this, MainActivity.class);
  PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
  notification.setLatestEventInfo(this, "消息", "SMS Android", pi);
  mNotification.notify(ID, notification); 

  btnCancel.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    mNotification.cancel(ID); //--->取消通知
   }
  });
 } 

}

6、NotificationReceiver.java源码如下:

package com.andyidea.notification; 

import com.andyidea.notification.SecondActivity; 

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent; 

public class NotificationReceiver extends BroadcastReceiver { 

 @Override
 public void onReceive(Context context, Intent intent) {
  //实例化Intent
  Intent i = new Intent();
  //在新任务中启动Activity
  i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  //设置Intent启动的组件名称
  i.setClass(context, SecondActivity.class);
  //启动Activity,显示通知
  context.startActivity(i);
 } 

}

7、程序运行效果如下:

以上就是针对Android中Notification使用方法进行的详细介绍,希望对大家的学习有所启发,帮助大家更好地学习Android软件编程。

(0)

相关推荐

  • 详解Android中Notification通知提醒

    在消息通知时,我们经常用到两个组件Toast和Notification.特别是重要的和需要长时间显示的信息,用Notification就最 合适不过了.当有消息通知时,状态栏会显示通知的图标和文字,通过下拉状态栏,就可以看到通知信息了,Android这一创新性的UI组件赢得了用户的一 致好评,就连苹果也开始模仿了.今天我们就结合实例,探讨一下Notification具体的使用方法.  首先说明一下我们需要实现的功能是:在程序启动时,发出一个通知,这个通知在软件运行过程中一直存在,相当于qq的托盘

  • Android编程实现拦截短信并屏蔽系统Notification的方法

    本文实例讲述了Android编程实现拦截短信并屏蔽系统Notification的方法.分享给大家供大家参考,具体如下: 拦截短信有几个关键点: 1.android接收短信时是以广播的方式 2.程序只要在自己的Manifest.xml里加有"接收"SMS的权限 <uses-permission android:name="android.permission.RECEIVE_SMS"> </uses-permission> <uses-p

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

    本想自己写一个的,但是看到这篇之后,我想还是转过来吧,实在是非常的详细: 在Android系统中,发一个状态栏通知还是很方便的.下面我们就来看一下,怎么发送状态栏通知,状态栏通知又有哪些参数可以设置? 首先,发送一个状态栏通知必须用到两个类:  NotificationManager . Notification. NotificationManager :  是状态栏通知的管理类,负责发通知.清楚通知等. NotificationManager 是一个系统Service,必须通过 getSys

  • Android中Notification用法实例总结

    本文实例总结了 Android中Notification用法.分享给大家供大家参考,具体如下: 我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一个短信的小图标提示啊?你是不是也想实现这种功能呢?今天的Notification就是解决这个问题的. 我们也知道Android系统也是在不断升级的,有关Notification的用法也就有很多种,有的方法已经被android抛弃了,现在我实现了三种不同的方法,并适应不同的android版本.现在我就把代码公布出

  • Android中通知Notification使用实例(振动、灯光、声音)

    本文实例讲解了通知Notification使用方法,此知识点就是用作通知的显示,包括振动.灯光.声音等效果,分享给大家供大家参考,具体内容如下 效果图: MainActivity: import java.io.File; import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; im

  • Android中关于Notification及NotificationManger的详解

    Android状态栏提醒 在Android中提醒功能也可以用AlertDialog,但是我们要慎重的使用,因为当使用AlertDialog的时候,用户正在进行的操作将会被打断,因为当前焦点被AlertDialog得到.我们可以想像一下,当用户打游戏正爽的时候,这时候来了一条短信.如果这时候短信用AlertDialog提醒,用户必须先去处理这条提醒,从而才能继续游戏.用户可能会活活被气死.而使用Notification就不会带来这些麻烦事,用户完全可以打完游戏再去看这条短信.所以在开发中应根据实际

  • Android中Notification 提示对话框

    Notification,俗称通知,是一种具有全局效果的通知,它展示在屏幕的顶端,首先会表现为一个图标的形式,当用户向下滑动的时候,展示出通知具体的内容. 一.Notification用于状态栏显示通知的控件,在不同的设备上面Notification是不一样的 二.Notification的基本布局 元素组成: Icon/Photo:大图标 Tiltle/Name:标题 Message:内容消息 Timestamp:通知的时间,默认是系统发出的时间,也可以通过setWhen()来设置 secon

  • android notification 的总结分析

    分类 notification有以下几种: 1>普通notification 1.内容标题 2.大图标 3.内容 4.内容附加信息 5.小图标 6.时间 2>大布局Notification 图1 大布局notification是在android4.1以后才增加的,大布局notification与小布局notification只在'7'部分有区别,其它部分都一致.大布局notification只有在所有notification的最上 面时才会显示大布局,其它情况下显示小布局.你也可以用手指将其扩

  • android中创建通知栏Notification代码实例

    ///// 第一步:获取NotificationManager NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); ///// 第二步:定义Notification Intent intent = new Intent(this, OtherActivity.class); //PendingIntent是待执行的Intent PendingIntent pi

  • android 通知Notification详解及实例代码

    android Notification实例详解 1.使用Builder模式来创建 2.必须要设置一个smallIcon,还可以设置setTicker 3.可以设置 setContentTitle,setContentInfo,setContentText,setWhen 4.可以设置setDefaults(闪屏,声音,震动),通过Notification设置flags(能不能被清除) 5.发送需要获取一个NotificationManager(getSystemService来获取);noti

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

    notification是一种让你的应用程序在没有开启情况下或在后台运行警示用户.它是看不见的程序组件(Broadcast Receiver,Service和不活跃的Activity)警示用户有需要注意的事件发生的最好途径. 1.新建一个android项目 我新建项目的 minSdkVersion="11",targetSdkVersion="19".也就是支持最低版本的3.0的. 2.习惯性地打开项目清单文件AndroidManifest.xml,添加一个权限:&

  • Android界面 NotificationManager使用Bitmap做图标

    今天看到EOE问答里面有这"[Android 界面]NotificationManager 如何使用Bitmap做图标"这样一个问题,在论坛搜索也没有好的案例 特写一个简单的demo供大家参考 今天发布的是NotificationManager 使用Bitmap做图标 关键code 复制代码 代码如下: public void notification(int flag) { Notification notification = new Notification(); //设置sta

随机推荐