前言
简单记录一下Notification的使用,这里设计简单Notification和自定义View的Notification的使用。
记录于此,方便自己查阅和学习。
正文
简单Notification
由于高版本需要添加NotificationChannel,下面就进行了一定的适配。
private String mChannelID = "";
private String mChannelName = "读书导航";
private NotificationManager mNotificationManager;
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
NotificationChannel notificationChannel;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
notificationChannel = new NotificationChannel(mChannelID, mChannelName, NotificationManager.IMPORTANCE_HIGH);
notificationChannel.setSound(null, null);
mNotificationManager.createNotificationChannel(notificationChannel);
}
private void sendNotification(int id, String title, String message) {
//点击Notification时跳转PendingIntent
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setClass(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
@SuppressLint("UnspecifiedImmutableFlag")
PendingIntent pendingIntent = PendingIntent.getActivity(this
, (int) SystemClock.uptimeMillis()
, intent
, PendingIntent.FLAG_UPDATE_CURRENT);
Notification.Builder builder = new Notification.Builder(this);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
builder.setChannelId(mChannelID);
}
//设置通知栏大图标,上图中右边的大图
builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
// 设置状态栏和通知栏小图标
.setSmallIcon(R.mipmap.ddf)
// 设置通知栏应用名称
.setTicker("ticker")
// 设置通知栏显示时间
.setWhen(System.currentTimeMillis())
// 设置通知栏标题
.setContentTitle(title)
.setSubText("setSubText") // 内容下面的一小段文字
.setTicker("setTicker") // 收到信息后状态栏显示的文字信息
// 设置通知栏内容
.setContentText(message)
// 设置通知栏点击后是否清除,设置为true,当点击此通知栏后,它会自动消失
.setAutoCancel(false)
// 将Ongoing设为true 那么左滑右滑将不能删除通知栏
.setOngoing(true)
// 设置通知栏点击意图
.setContentIntent(pendingIntent)
// 铃声、闪光、震动均系统默认
.setDefaults(Notification.DEFAULT_ALL)
// 设置为public后,通知栏将在锁屏界面显示
.setVisibility(Notification.VISIBILITY_PRIVATE)
// 从Android4.1开始,可以通过以下方法,设置通知栏的优先级,优先级越高的通知排的越靠前,
// 优先级低的,不会在手机最顶部的状态栏显示图标
// 设置优先级为PRIORITY_MAX,将会在手机顶部显示通知栏
.setPriority(Notification.PRIORITY_MIN);
mNotificationManager.notify(id, builder.build());
}
自定义View的Notification
这种是多媒体中比较常用的。
历史上的今天
暂无评论...
随机推荐
刘明:从一幅寿桃走近一位画家
源于一次写生活动,有幸认识了一位画家,他就是长安画院的周西省大哥。称呼他为大哥,有一种亲和力是源于他的一件小事,感动了我。那就是有缘去了一趟我的老家,他让我的父母坐下,他用手机播放一段我做的视频,让他们看,并说:“老人家,你们看看,这就是您的儿子拍摄的作品。”人与人之间相遇相识有缘是奇妙的,这种...
ANR原因以及解决方法
一. ANR (Application Not Responding)的定义?在Android上,应用程序如果没有响应,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择等待或者强制关闭。一个...
startService分析(1)
Service的源码路劲:base\core\java\android\app\Service.java,我们从Service.java开始入手。Service的启动方式有两种,一种是stopService(Intent name),另一种是bindService(Intent serv...
萧红:荒凉的院子
一到了夏天,蒿草长没大人的腰了,长没我的头顶了,黄狗进去,连个影也看不见了。夜里一刮起风来,蒿草就刷拉刷拉地响着,因为满院子都是蒿草,所以那响声就特别大,成群结队的就响起来了。下了雨,那蒿草的梢上都冒着烟,雨本来下得不很大,若一看那蒿草,好像那雨下得特别大似的。下了毛毛雨,那蒿草上就迷漫得朦朦...
Square开源框架Coordinators的简单使用
Coordinators简介Coordinators是由知名公司Square开发并开源的框架,Simple lifecycle for your MVWhatever on Android. No kidding.哈哈,比较小众,但很不错的。目前国内没啥资料介绍这个和使用这个。Github地...
Fragment already added
前言项目中会用Viewpager+Fragment来显示图片,先项目中测试ok,但是我单独拎出来做简单调试时出现:java.lang.IllegalStateException: Fragment already added: PlayFragment尴尬了,就我拎出来的demo代码片段有...