Android 通知栏 通知 (Notification)

本文介绍了如何在Android中创建和管理通知,包括使用NotificationCompat.Builder设置通知内容、意图、图标,以及如何处理点击通知后的操作。还提到了高级用法如设置长文本和图片,以及权限和通知取消的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.获取通知管理者

NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

 

2.通知的获取

 NotificationCompat.Builder(Main2Activity.this)

NotificationCompat 在supper- v4 包下

下面是具体代码:

 

public class Main2Activity extends Activity implements View.OnClickListener {

private Button btn;

//创建通知管理者

    private NotificationManager manager;

//通知

    private Notification notification;

@Override

    protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main2);

btn = findViewById(R.id.btn);

btn.setOnClickListener(this);

manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

//创建意图

        Intent intent =new Intent(Main2Activity.this, MainActivity.class);

PendingIntent pendingIntent = PendingIntent.getActivity(Main2Activity.this,0, intent,0);

//创建通知

        notification =new NotificationCompat.Builder(Main2Activity.this)

.setContentTitle("我是一个通知")

.setContentText("我是通知的文本")

.setWhen(System.currentTimeMillis())//时间

                .setSmallIcon(R.mipmap.ic_launcher)//设置小图标

                .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))//设置下拉后显示的图标

                .setContentIntent(pendingIntent)//设置意图 目的是点击通知打开那个页面

                .setAutoCancel(true)//传入true  打开通知后关闭页面

//                .setVibrate(new long[]{0, 1000, 1000, 1000}) //设置震动 收到通知0S后震动1S 休息1S 在震动1S

//震动需要添加权限  VIBRATE

                .setDefaults(Notification.DEFAULT_ALL)//跟随系统 震动和播放铃声

                .setLights(Color.GREEN,1000,100)//设置信号灯的颜色

                .build();

}

@Override

    public void onClick(View v) {

switch (v.getId()) {

case R.id.btn: {

//弹出通知

                manager.notify(1,notification);

break;

}

}

}

}

注意 如果需要提示震动,需要在 清单文件中添加权限

另外 点击通知跳转到页面后,关闭页面有两种方式。一是上文提到的,另一种是显式调用NotificationManager的cancel()将他取消。用法就写在你开启的页面 onCreat()中即可。需要注意的一点是 cancel()中传入的值 要跟你创建的通知传入的ID是一致的才能取消掉这个通知。

高级用法:

//设置长文本

setStyle(new     .BigTextStyle().bigText("我就是测试一下长文本的显示是不是可以实现"))

//设置图片的显示

.setStyle(new NotificationCompat.BigPictureStyle()

.bigPicture(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)))

.setPriority(NotificationCompat.PRIORITY_MAX) //设置通知重要程度

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值