android学习笔记(40)Notification的功能与用法

2015-1-9 13:16:55     人阅读    

        Notification是显示在手机状态栏的消息——手机状态栏位于手机屏幕的最上方,那里一 般显示了手机当前的网络状态、电池状态、时间等。Notification所代表的是一种具有全局效 果的通知,程序一般通过NotificationManager服务来发送Notification。
         使用Notification发送Notification也不难,按照如下步骤进行
                调用 getSystemService(NOTIFICATION_SERVICE)方法获取系统的 Notification Manager 服务。
                通过构造器创建—个Notification对象。
               通过 NotificationManager 发送 Notification。
      下面的示例程序示范了如何通过NotificationManager来发送、取消Notification,本示例 程序的界面很简单,只是包含两个普通按钮:分别用于发送Notification和取消Notification。 本示例程序的Java代码如下。
程序清单:codes\02\2.6\NotificationTest\src\org\crazyit\notification\NotificationTest.java

package org.crazyit.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.view.View.OnClickListener;
import android.widget.Button;
public class NotificationTest extends Activity
{
 static final int NOTIFICATION_ID = 0x1123;
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  //获取应用界面中的Button对象
  Button bn = (Button) findViewById(R.id.bn);
  //为按钮的单击事件绑定事件监听器
  bn.setOnClickListener(new View.OnClickListener()
  {
   @Override
   public void onClick(View source)
   {
    //创建一个启动其他Activity的Intent
    Intent intent = new Intent(NotificationTest.this
     , OtherActivity.class);
    PendingIntent pi = PendingIntent.getActivity(NotificationTest.this
     , 0, intent , 0);
    //创建一个Notification
    Notification notify = new Notification();
    //为Notification设置图标,该图标显示在状态栏
    notify.icon = R.drawable.notify;
    //为Notification设置文本内容,该文本会显示在状态栏
    notify.tickerText = "启动其他Activity的通知";
    //为Notification设置发送时间
    notify.when = System.currentTimeMillis();
    //为Notification设置声音
    notify.defaults = Notification.DEFAULT_SOUND;
    //为Notification设置默认声音、默认振动、默认闪光灯
    notify.defaults = Notification.DEFAULT_ALL;
    //设置事件信息
    notify.setLatestEventInfo(NotificationTest.this, "普通通知",
     "点击查看", pi);
    //获取系统的NotificationManager服务
    NotificationManager notificationManager = (NotificationManager) 
     getSystemService(NOTIFICATION_SERVICE);
    //发送通知
    notificationManager.notify(NOTIFICATION_ID, notify);
   }
  });
  Button del = (Button)findViewById(R.id.del);
  del.setOnClickListener(new OnClickListener()
  {
   @Override
   public void onClick(View v)
   {
    //获取系统的NotificationManager服务
    NotificationManager notificationManager = (NotificationManager) 
     getSystemService(NOTIFICATION_SERVICE);
    //取消通知
    notificationManager.cancel(NOTIFICATION_ID);
   }
  });
 }
}


上面的程序中粗体字代码用于为Notification设置各种属性,包括Notification的图标、 标题、发送时间等。实际上我们完全可以用如下代码来创建Notification。

Notification notify = new Notification(R.drawable.notify ,“启动其他Activity 的通知”,System.currentTimeMi11is();)


除此之外,上面的程序还通过defaults属性为Notification设置了声音提示、振动提示、 闪光灯等,该属性支持如下属性值。

DEFAULT—SOUND:设置使用默认声音。
DEFAULT一V旧RATE:设置使用默认振动。
DEFAULTJJGHTS:设置使用默认闪光灯。


ALL:设置使用默认声音、振动、闪光灯。
如果不想使用默认设置,也可使用如下代码:

//设置自定义声音
notify.sound = Uri.parse("file:///sdcard/click.mp3");
//设置自定义振动
notify.vibrate = new long[]{0 , 50 , 100, 150};
//设置闪光灯颜色为红色
notify.ledARGB = Oxffff0000;
//设置闪光灯多少毫秒后熄灭 notify. ledOffMS= 800;
//设置闪光灯多少毫秒后开启 notify.ledOnMS = OxffffOOOO;


接下来①号代码用于为该Notification设置事件信息,设置事件信息时传入了一个 Pendinglntent对象,该对象里封装了一个Intent,这意味着单击 该Notification时将会启动该Intent对应的程序。
运行上面的程序,单击程序中“发送Notification”按钮,将 可以看到手机屏幕上方出现了一个Notification,将状态栏向下拖 动将可以看到Notification的详情

 


原文地址:http://www.itmmd.com/201501/464.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

android 不通过editext 火灾customview中输入的文本值   上一篇
下一篇  android 获得最后一个选中的 action bar tab
精彩回复
我要追加问题,请求站长解决!
姓名:       

《程序员app》专门为程序员量身定做!