Android中的几种消息通知



普通通知

public void sendone(View view){
        //1.先创建一个通知的管理器
        NotificationManager nm =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        //2.创建一个通知的builder对象来设置通知的一些相关内容
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
        builder.setContentTitle("紧急通知");
        builder.setContentText("因为今天是伟大的节日,所以呢全部都不用上课了。。。");
        builder.setSmallIcon(R.drawable.ic_launcher);//小图必须设置,否则报错
        //设置一个通知的标志,响铃和振动
        builder.setDefaults(NotificationCompat.DEFAULT_SOUND|NotificationCompat.DEFAULT_VIBRATE);
        //设置一个跑马类的提示
        builder.setTicker("大家今天要记得吃好饭。。。。");
        //设置通知能不能删除
        builder.setOngoing(true);
        //设置通知点击完后自动取消
        builder.setAutoCancel(true);
        //创建一个意图对象
        Intent i = new Intent();
        i.setAction(Intent.ACTION_DIAL);
        i.setData(Uri.parse("tel://10086"));
        PendingIntent pi = PendingIntent.getActivity(this, 100, i, PendingIntent.FLAG_ONE_SHOT);
        builder.setContentIntent(pi); //给通知设置了一个点击事件
        //通过builder对象来创建一个通知对象
        Notification no = builder.build();
        //3.通过通知管理器来发送通知
        nm.notify(1, no);
    }


列表通知
public void sendlist(View view) {
    //1.先创建一个通知的管理器
        NotificationManager nm =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        // 2.创建通知的builder对象并设置通知的相关属性信息
        NotificationCompat.Builder b = new NotificationCompat.Builder(this);
        b.setSmallIcon(R.drawable.pic3).setContentTitle("列表通知")
                .setDefaults(Notification.DEFAULT_SOUND);

        // 3.创建一个通知的列表样式的对象
        NotificationCompat.InboxStyle style = new NotificationCompat.InboxStyle();
        // 往列表里加数据
        style.addLine("这是第一条信息");
        style.addLine("这是第二条信息");
        style.addLine("这是第三条信息");
        style.setSummaryText("一共有3条数据,请过目");
        // 4.把列表样式对象设置给通知的builder对象
        b.setStyle(style);
        // 5.通知通知管理器来发送通知
        nm.notify(2, b.build());
    }


大图片通知
public void sendBigImage(View view) {
   //1.先创建一个通知的管理器
        NotificationManager nm =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        // 2.创建通知的builder对象并设置通知的相关属性信息
        NotificationCompat.Builder b = new NotificationCompat.Builder(this);
        b.setSmallIcon(R.drawable.pic3).setContentTitle("大图片通知")
                .setDefaults(Notification.DEFAULT_SOUND);

        // 3.创建一个通知的大图片样式的对象
        NotificationCompat.BigPictureStyle style = new NotificationCompat.BigPictureStyle();
//通知栏的大图
        style.bigLargeIcon(BitmapFactory.decodeResource(getResources(),
                R.drawable.pic7));
//显示在通知栏下面的大图
        style.bigPicture(BitmapFactory.decodeResource(getResources(),
                R.drawable.pic8));
        style.setSummaryText("该电影主演人是英桃小玩子,大家快来看呀");

        // 4.把大图片样式对象设置给通知的builder对象
        b.setStyle(style);
        // 5.通知通知管理器来发送通知
        nm.notify(3, b.build());
    }


进度条通知
//子线程和主线程都可以发送通知
    public void sendProgress(View view){
        //创建通知的builder对象并设置通知的相关属性信息
        final NotificationCompat.Builder b = new NotificationCompat.Builder(this);
        new Thread(){
            public void run() {
                //设置通知的相关属性信息
                b.setSmallIcon(R.drawable.pic8)
                .setContentTitle("下载提示")
                .setContentText("小主,你需要的东西正在下载中,请耐心等待")
                .setAutoCancel(true)
                .setDefaults(NotificationCompat.DEFAULT_VIBRATE);

                for (int i = 0; i <100; i+=5) {
                    //第一个参数是最大的进度,第二个参数是当前进度,第三个参数是你的进度条是不是确定的,true表示不确定,false表示确定
                    b.setProgress(100, i, false); 
                    nm.notify(4, b.build()); //不停的发送通知
                    Log.e("progess", i+"------");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }


                //取消发送进度的那个通知
                nm.cancel(4);

                //在创建一个下载完成的提醒通知
                NotificationCompat.Builder b2 = new NotificationCompat.Builder(MainActivity.this);
                b2.setSmallIcon(R.drawable.pic3).setContentTitle("下载完成")
                .setContentText("亲,已经下载完成,请您查看")
                .setDefaults(NotificationCompat.DEFAULT_SOUND);
                nm.notify(5, b2.build());
            };
        }.start();
    }


自定义通知
 public void sendself(View view) {
        NotificationCompat.Builder b = new NotificationCompat.Builder(this);
        b.setSmallIcon(R.drawable.ic_launcher);
        b.setContentTitle("自定义通知").setTicker("请查看我自定义的通知吧")
                .setDefaults(NotificationCompat.DEFAULT_SOUND);

        // 创建一个remoteviews对象
        RemoteViews rvs = new RemoteViews(getPackageName(),
                R.layout.item_notification_layout);
        rvs.setTextViewText(R.id.tvmess, "你叫什么名字?");
        rvs.setTextViewText(R.id.tvmess2, "你来自哪里?");
        rvs.setImageViewResource(R.id.ivimage, R.drawable.cat);

        b.setContent(rvs); // 设置自定义的通知内容
        // 发送通知
        nm.notify(6, b.build());

    }

自定义Toast通知
public void toastBySelf(View view) {
        //根据布局文件转成一个布局对象
        View rootView = View.inflate(this, R.layout.item_notification_layout,
                (ViewGroup) findViewById(R.id.root));
        TextView tv = (TextView) rootView.findViewById(R.id.tvmess);
        TextView tv2 = (TextView) rootView.findViewById(R.id.tvmess2);
        tv.setText("这是自定义的TOAST");
        tv2.setText("请看大家的表情");

        //创建Toast对象
        Toast t = new Toast(getApplicationContext());
        t.setGravity(Gravity.RIGHT, 0, 0);
        t.setDuration(Toast.LENGTH_LONG);
        t.setView(rootView);
        t.show();
    }

普通通知

public void sendone(View view){
        //1.先创建一个通知的管理器
        NotificationManager nm =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        //2.创建一个通知的builder对象来设置通知的一些相关内容
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
        builder.setContentTitle("紧急通知");
        builder.setContentText("因为今天是伟大的节日,所以呢全部都不用上课了。。。");
        builder.setSmallIcon(R.drawable.ic_launcher);//小图必须设置,否则报错
        //设置一个通知的标志,响铃和振动
        builder.setDefaults(NotificationCompat.DEFAULT_SOUND|NotificationCompat.DEFAULT_VIBRATE);
        //设置一个跑马类的提示
        builder.setTicker("大家今天要记得吃好饭。。。。");
        //设置通知能不能删除
        builder.setOngoing(true);
        //设置通知点击完后自动取消
        builder.setAutoCancel(true);
        //创建一个意图对象
        Intent i = new Intent();
        i.setAction(Intent.ACTION_DIAL);
        i.setData(Uri.parse("tel://10086"));
        PendingIntent pi = PendingIntent.getActivity(this, 100, i, PendingIntent.FLAG_ONE_SHOT);
        builder.setContentIntent(pi); //给通知设置了一个点击事件
        //通过builder对象来创建一个通知对象
        Notification no = builder.build();
        //3.通过通知管理器来发送通知
        nm.notify(1, no);
    }


列表通知
public void sendlist(View view) {
    //1.先创建一个通知的管理器
        NotificationManager nm =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        // 2.创建通知的builder对象并设置通知的相关属性信息
        NotificationCompat.Builder b = new NotificationCompat.Builder(this);
        b.setSmallIcon(R.drawable.pic3).setContentTitle("列表通知")
                .setDefaults(Notification.DEFAULT_SOUND);

        // 3.创建一个通知的列表样式的对象
        NotificationCompat.InboxStyle style = new NotificationCompat.InboxStyle();
        // 往列表里加数据
        style.addLine("这是第一条信息");
        style.addLine("这是第二条信息");
        style.addLine("这是第三条信息");
        style.setSummaryText("一共有3条数据,请过目");
        // 4.把列表样式对象设置给通知的builder对象
        b.setStyle(style);
        // 5.通知通知管理器来发送通知
        nm.notify(2, b.build());
    }


大图片通知
public void sendBigImage(View view) {
   //1.先创建一个通知的管理器
        NotificationManager nm =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        // 2.创建通知的builder对象并设置通知的相关属性信息
        NotificationCompat.Builder b = new NotificationCompat.Builder(this);
        b.setSmallIcon(R.drawable.pic3).setContentTitle("大图片通知")
                .setDefaults(Notification.DEFAULT_SOUND);

        // 3.创建一个通知的大图片样式的对象
        NotificationCompat.BigPictureStyle style = new NotificationCompat.BigPictureStyle();
//通知栏的大图
        style.bigLargeIcon(BitmapFactory.decodeResource(getResources(),
                R.drawable.pic7));
//显示在通知栏下面的大图
        style.bigPicture(BitmapFactory.decodeResource(getResources(),
                R.drawable.pic8));
        style.setSummaryText("该电影主演人是英桃小玩子,大家快来看呀");

        // 4.把大图片样式对象设置给通知的builder对象
        b.setStyle(style);
        // 5.通知通知管理器来发送通知
        nm.notify(3, b.build());
    }


进度条通知
//子线程和主线程都可以发送通知
    public void sendProgress(View view){
        //创建通知的builder对象并设置通知的相关属性信息
        final NotificationCompat.Builder b = new NotificationCompat.Builder(this);
        new Thread(){
            public void run() {
                //设置通知的相关属性信息
                b.setSmallIcon(R.drawable.pic8)
                .setContentTitle("下载提示")
                .setContentText("小主,你需要的东西正在下载中,请耐心等待")
                .setAutoCancel(true)
                .setDefaults(NotificationCompat.DEFAULT_VIBRATE);

                for (int i = 0; i <100; i+=5) {
                    //第一个参数是最大的进度,第二个参数是当前进度,第三个参数是你的进度条是不是确定的,true表示不确定,false表示确定
                    b.setProgress(100, i, false); 
                    nm.notify(4, b.build()); //不停的发送通知
                    Log.e("progess", i+"------");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }


                //取消发送进度的那个通知
                nm.cancel(4);

                //在创建一个下载完成的提醒通知
                NotificationCompat.Builder b2 = new NotificationCompat.Builder(MainActivity.this);
                b2.setSmallIcon(R.drawable.pic3).setContentTitle("下载完成")
                .setContentText("亲,已经下载完成,请您查看")
                .setDefaults(NotificationCompat.DEFAULT_SOUND);
                nm.notify(5, b2.build());
            };
        }.start();
    }


自定义通知
 public void sendself(View view) {
        NotificationCompat.Builder b = new NotificationCompat.Builder(this);
        b.setSmallIcon(R.drawable.ic_launcher);
        b.setContentTitle("自定义通知").setTicker("请查看我自定义的通知吧")
                .setDefaults(NotificationCompat.DEFAULT_SOUND);

        // 创建一个remoteviews对象
        RemoteViews rvs = new RemoteViews(getPackageName(),
                R.layout.item_notification_layout);
        rvs.setTextViewText(R.id.tvmess, "你叫什么名字?");
        rvs.setTextViewText(R.id.tvmess2, "你来自哪里?");
        rvs.setImageViewResource(R.id.ivimage, R.drawable.cat);

        b.setContent(rvs); // 设置自定义的通知内容
        // 发送通知
        nm.notify(6, b.build());

    }

自定义Toast通知
public void toastBySelf(View view) {
        //根据布局文件转成一个布局对象
        View rootView = View.inflate(this, R.layout.item_notification_layout,
                (ViewGroup) findViewById(R.id.root));
        TextView tv = (TextView) rootView.findViewById(R.id.tvmess);
        TextView tv2 = (TextView) rootView.findViewById(R.id.tvmess2);
        tv.setText("这是自定义的TOAST");
        tv2.setText("请看大家的表情");

        //创建Toast对象
        Toast t = new Toast(getApplicationContext());
        t.setGravity(Gravity.RIGHT, 0, 0);
        t.setDuration(Toast.LENGTH_LONG);
        t.setView(rootView);
        t.show();
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值