android系统通知栏的弹框流程,Android Notification 手机系统横幅弹出提示框调用

本文介绍了如何在Android应用中创建类似微信信息提示的横幅通知栏。通过使用NotificationCompat.Builder,设置内容标题、文本、图标等属性,并通过PendingIntent实现点击通知跳转到指定Activity。同时,由于系统默认的消失时间过长,文中采用定时任务来在两秒后自动取消通知栏显示。
摘要由CSDN通过智能技术生成

类似于仿微信信息提示提出框。

在项目当中集成了推送功能,当手机接收到消息后只是在手机通知栏有提示信息。所以需要展示像微信信息弹出框一样的效果,开始自己还以为微信信息弹出框是自定义Dialog之类的自定义控件;后面发现其实微信也是调用 Android Notification 系统自带的通知栏,在其中可以定义各种各样的通知栏样式。

具体详情也可以参看:

https://developer.android.com/guide/topics/ui/notifiers/notifications.html#lockscreenNotification

https://shoewann0402.github.io/2016/05/12/Android-Notification-%E9%80%9A%E7%9F%A5%E6%A0%B7%E5%BC%8F%E6%80%BB%E7%BB%93/

这里只是列出仿微信信息通知的横幅通知栏:

notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {

Toast.makeText(context, "此类通知在Android 5.0以上版本才会有横幅有效!", Toast.LENGTH_SHORT).show();

}

//为了版本兼容  选择V7包下的NotificationCompat进行构造

NotificationCompat.Builder builder = new NotificationCompat.Builder(context);

builder.setContentTitle("横幅通知");

builder.setContentText("请在设置通知管理中开启消息横幅提醒权限");

builder.setDefaults(NotificationCompat.DEFAULT_ALL);

builder.setSmallIcon(R.drawable.app_icon);

builder.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher));

Intent intent = new Intent(context, TestActivity.class);

PendingIntent pIntent = PendingIntent.getActivity(context, 1, intent, 0);

builder.setContentIntent(pIntent);

builder.setFullScreenIntent(pIntent, true);

builder.setAutoCancel(true);

Notification notification = builder.build();

notificationManager.notify(1, notification);//注意这里 1 为当前通知栏的 Id 号,和 Fragment 设置 Id 是一样的

// 设置 heads-up 消失任务

TimerTask task = new TimerTask() {

@Override

public void run() {

System.out.println("start the cancel task....");

notificationManager.cancel(1);

// 根据之前设置的通知栏 Id 号,让相关通知栏消失掉

}

};

Timer timer = new Timer();

timer.schedule( task , 2000);

}

由于等待通知栏自己消失的时间过于长,找了半天也没有找到合适的API;所以只有自己设置一个定时任务,弹出两秒后让其消失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值