Notification

是个进程间的通讯

手机状态栏的提示.出现在桌面通知栏里,他不在我们的App里,而是由SystemUI进程显示的提示.所以让另外一个系统的进程SystemUI帮我们显示一个通知栏提醒.

不多说上代码

属性配置

<uses-permission android:name="android.permission.VIBRATE" />

主要代码


public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private Button button;
    private Button button2;
    private NotificationManager notificationManager;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }
    private void initView() {
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(this);
        button2 = (Button) findViewById(R.id.button2);
        button2.setOnClickListener(this);
    }

/**
     * 让另外一个系统的进程SystemUI帮我们显示一个通知栏提醒
     * 进程间的通讯
     *
     * @param v
     */
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button:
                //进程间通信.主要是把一个动作交给另外一个应用程序来做的意图,就用PendingIntent包裹一下.
                //pendingIntent,可以打开一个四大组件,用其静态方法,get....
                //getActivity,1 上下文,2 请求码用不到就为0,3 意图对象,4 指定其点击后的状态标识
                Intent intent = new Intent();
                intent.setAction(Intent.ACTION_DIAL);
                intent.setData(Uri.parse("tel://110"));
//                Intent intent = new Intent(this,JumpActivity.class);//跳转到指定的Activity,不用StartActivity.
                PendingIntent pendingIntent=  PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
                //获取系统的通知服务,上面的Intent操作就是用户点击通知栏时,自动进入拨号界面,
                notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                //直接new出来,该方式在安卓3.0以后已经过时了
//                Notification notification=new Notification();
    //使用链式调用的方法,创建Notification对象的同时往里面进行设置,是主流的创建方式,Builder的参数是上下文.
                Notification notification = new Notification.Builder(this)
                        //设置通知栏的标题
                        .setContentTitle("你中奖啦")
                        //设置通知栏的通知内容
                        .setContentText("快来110 去领取!!!")
                        //设置通知栏的图片(就是通知一来,在显示电量那一行出现的小图标)
                        .setSmallIcon(R.mipmap.ic_launcher)
                        //设置通知栏的大图片(就是通知栏拉下来显示的图标)
                        .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
                        //设置通知栏被点击后会执行的意图(比如跳转到指定的activity,比如打电话等等)
                        .setContentIntent(pendingIntent)
                        //当通知栏提示被点击执行时,通知栏会消失在桌面,不设置此方法,默认通知栏提示被点击后依然存在.所以必用此方法.
                        .setAutoCancel(true)
//                        .setSound(Uri.parse("")) //设置通知栏提示到来时的声音是什么.
                        //设置当通知栏提示到来时,手机每一次震动的时长.使用此功能记着加权限.<uses-permission android:name="android.permission.VIBRATE"/>
//                        .setVibrate(new long[]{100,200,300}) //不设置没有震动
                        // 使用系统默认声音,震动,led灯等设置
//                        .setDefaults(Notification.DEFAULT_ALL)
                        .build();
                //FLAG_NO_CLEAR 使通知栏提示取消不掉,一直存在.   FLAG_Auto_CLEAR 通知栏提示只要被点击一次就不会存在.
                notification.flags=Notification.FLAG_NO_CLEAR;
                //让通知显示在状态栏里.参数1,给通知起的ID,方便对其单独的操作(比如用cancel把指定通知取消掉) 参数2,就是Notification对象.
                notificationManager.notify(1, notification);
                break;
            case R.id.button2:
                //使用NotificationManager对象,取消掉指定int标识的通知提示.
                notificationManager.cancel(1);
                break;
        }

}

}


Android 原生通知Notification 写法相关推荐

  1. 利用android的通知Notification来实现msn的登录状态

    Notification,状态栏.看得出来就是和我们PC机一样,在某一区域有个标志,需要请求它就去点这个标志就可以打开这个程序了. 先来介绍下需要用到的一些属于android下的类:Intent.No ...

  2. android通知的内容图标都不显示,android状态栏通知Notification如何设置为下拉不显示通知内容和图标...

    2013-09-05 回答 根据activity的生命周期,在activity不显示时,会执行onstop函数,所以你在onstop函数(按退出键除外)里面把notification放在通知栏里,再此 ...

  3. Android发送通知——通知栏(Notification)

    Android发送通知--通知栏(Notification) 通知是指 Android 在您应用的界面之外显示的消息,旨在向用户提供提醒.来自他人的通信信息或您应用中的其他实时信息.在发出一条通知后, ...

  4. android activity 被notification启动,Android通知Notification全面剖析

    原标题:Android通知Notification全面剖析 通知 通知是您可以在应用的常规 UI 外部向用户显示的消息.当您告知系统发出通知时,它将先以图标的形式显示在通知区域中.用户可以打开抽屉式通 ...

  5. android 通知传值,Android消息通知(notification)和PendingIntent传值

    Android支持Toast和NotificationManager两种通知方式,前者相当于一个定时关闭的对话框,后者是在状态栏上显示一条消息.Toast和Notification都可以随时取消. T ...

  6. Android通知——Notification

    Android通知--Notification 创建通道 在显示通知之前必须先设置通道,这是必须前提. 可以在此对此通道的通知进行基本的设置,例如是否显示呼吸灯.是否震动.优先级等. 代码大概长这样: ...

  7. Android学习日记 Notification 通知

    Android学习日记 Notification 通知 文章目录 Android学习日记 Notification 通知 前言 使用步骤 总结 前言 下拉状态栏显示的通知功能 使用步骤 代码如下: p ...

  8. android notification自动消失,Android开发 -- 状态栏通知Notification、NotificationManager详解...

    本想自己写一个的,但是看到这篇之后,我想还是转过来吧,实在是非常的详细: 在Android系统中,发一个状态栏通知还是很方便的.下面我们就来看一下,怎么发送状态栏通知,状态栏通知又有哪些参数可以设置? ...

  9. android系统 通知,Android中通知的使用-----Notification详解

    Notification -- 通知,是一种让你的应用程序在不使用Activity的情况下警示用户.它是看不见的程序组件(Broadcast Receiver,Service和不活跃的Activity ...

最新文章

  1. iphone如何信任软件_你还在用大众点评吗?评价软件失去信任还如何活下去
  2. Ruby的.nil? .empty? .blank? .present?区别
  3. CH0103最短Hamilton路径 poj2288 Islands and Brigdes【状压DP】
  4. 洛谷 P 3379 【模板】最近公共祖先(LCA)
  5. hadoop集群-格式化namenode节点后,从节点的datanode不能启动,或者是datanode启动到主节点上。
  6. 有关于mysql自增型需要返回id_关于mysql自增id,你需要知道的
  7. react leaflet_如何使用React Leaflet和Leaflet Gatsby Starter设置自定义Mapbox底图样式
  8. Python模块:生成随机数模块random
  9. (一)CentOS Docker 安装
  10. java pojo 类 怎么写_[转]Java中的POJO类
  11. 基于Spring的MVC框架设计与实现
  12. android连接wifi不能上网,手机已经连接wifi但无法上网的详细解决方法
  13. 2019年山东计算机单招学校,2019年山东单招学校排名前十的有哪些?
  14. uva 10041 - Vito's Family
  15. 免费的可视化Web报表工具,JimuReport v1.5.0版本发布
  16. Svelte入门——Web Components实现跨框架组件复用(二)
  17. Python用python-docx抓取公众号文章写入word
  18. SSIS学习之SSIS介绍
  19. find 搜索关键字并显示文件名
  20. delist(滴滴delist)

热门文章

  1. ubuntu linux指南 管理篇,Ubuntu Linux指南:管理篇
  2. php 验证url,php过滤器filter验证邮箱、url和ip地址等
  3. keras从入门到放弃(十九)RNN和LSTM
  4. NeurIPS 2020 | 聚焦自监督学习
  5. 三味Capsule:矩阵Capsule与EM路由
  6. 春节期间,你错过了这些开源论文 | Paper + Code 清单
  7. “Paper + Code”加量豪华套餐 | PaperDaily #04
  8. web第一节2020.5.11
  9. 【教程】Jupyter notebook基本使用教程
  10. asterisk 配置 mysql_Asterisk的配置详解