前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android开发(11) 消息栏通知(Notification)

Android开发(11) 消息栏通知(Notification)

作者头像
张云飞Vir
发布2020-03-16 15:04:02
2K0
发布2020-03-16 15:04:02
举报
文章被收录于专栏:写代码和思考写代码和思考

概述

android 的消息通知还是很方便的,它会出现在窗体的顶部,并给出提示。常见的短信就是这样的通知方式。本文我们尝试实现一个这样的演示。

演示截图:

实现步骤:

  1. 获得NotificationManager 对象,这是一个通知管理器。我们在窗体里调用方法获得 NotificationManager manager = (NotificationManager) getSystemService( Context.NOTIFICATION_SERVICE); getSystemService是获得系统服务的方法。android以服务的形式提供给用户操作接口。也就是说,我们要想操作 通知相关的操作接口,就先获得系统提供的 “通知管理器” NotificationManager 对象就是一个服务管理器了。
  2. 构建一个Notification 对象,这个Notification 对象描述了:通知的标题和内容,通知要调用的窗体。 //构建一个通知对象,指定了 图标,标题,和时间 Notification notification = new Notification(R.drawable.icon, "通知", System.currentTimeMillis()); //设定事件信息 notification.setLatestEventInfo(getApplicationContext(), "通知标题", "通知显示的内容", pendingIntent); notification.flags|=Notification.FLAG_AUTO_CANCEL; //自动终止 notification.defaults |= Notification.DEFAULT_SOUND; //默认声音

其中pendingIntent对象 是一个跳转intent,当提示后,点击在消息提示栏的 “通知”时,能打开一个窗体activity

代码语言:javascript
复制
  PendingIntent pendingIntent = PendingIntent.getActivity( 
                     ActNotifyDemo.this, 
                     0, 
                     
  new Intent(ActNotifyDemo.this,ActNotifyDemo.class), //指定一个跳转的intent
                     0
             );

实际上是PendingIntent 包含(封装)了一个跳转的 intent对象。

3.调用NotificationManager.notify方法发起通知,发起后的通知就会在消息栏提示。

代码如下:

代码语言:javascript
复制
public class ActNotifyDemo extends Activity {
Button _btn1;

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


    _btn1 = (Button)findViewById(R.id.button1);
    _btn1.setOnClickListener(new OnClickListener(){
        //触发通知
        public void onClick(View arg0) {
            //获得通知管理器
             NotificationManager manager = (NotificationManager) getSystemService(
                     Context.NOTIFICATION_SERVICE); 
             //构建一个通知对象
             Notification notification = new Notification(R.drawable.icon, 
                        "通知", System.currentTimeMillis()); 

             PendingIntent pendingIntent = PendingIntent.getActivity( 
                     ActNotifyDemo.this, 
                     0, 
                     new Intent(ActNotifyDemo.this,ActNotifyDemo.class),
                     0
             );
             
             notification.setLatestEventInfo(getApplicationContext(),
                     "通知标题", 
                     "通知显示的内容", 
                     pendingIntent);
             notification.flags|=Notification.FLAG_AUTO_CANCEL; //自动终止
             notification.defaults |= Notification.DEFAULT_SOUND; //默认声音
             manager.notify(0, notification);//发起通知
        }
    });
  }
}

源代码下载

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 演示截图:
  • 实现步骤:
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档