专高1第三单元

普通通知

private void sendNotification() {

//创建构造者

Notification.Builder builder = newNotification.Builder(this);

//设置属性 setSamllIcon该属性必须设置

builder.setSmallIcon(R.mipmap.ic_launcher); //必须设置

builder.setContentTitle("我是标题"); //建议设置

builder.setContentText("我是内容"); //建议设置

// builder.setTicker("我是提示信息");

// builder.setContentInfo("我是附加信息"); //7.0以后已经过期

//创建对象.发送的就是这个对象

Notification build = builder.build();

//获取通知管理器,负责发通知、清除通知等

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

//TODO :发送通知

//参数一 id 通知的id(稍后介绍意义) 参数二 通知对象

notificationManager.notify(1,build);

}

}

u新建项目,编写普通通知并发送

n思路分析:

u创建通知构建者

u设置通知各部分属性

u创建通知

u发送通知

n为什么使用通知

n常用的通知分类有哪些

n如何创建普通通知

n如何关闭通知

通知分组

一个APP可能短时间之内可能会推送很多条消息给用户,占用大量空间,消息都堆在一起,也大大降低了用户的体验,所以使用分组将同类型的消息统一管理。

mBuilder1.setWhen(System.currentTimeMillis())

.setContentTitle("first contenttitle")

.setContentText("first contenttext")

.setSmallIcon(R.mipmap.ic_launcher)

.setGroup("a");

mBuilder1.setWhen(System.currentTimeMillis())

...

.setGroup("b");

NotificationCompat.BuildermBuilder1 = new NotificationCompat.Builder(this);

NotificationCompat.BuildermBuilder2 = new NotificationCompat.Builder(this);

mNotifacationManager.notify(1,mBuilder1.build());

mNotifacationManager.notify(2,mBuilder2.build());

setVisibility() 方法共有三个选值:

1.VISIBILITY_PRIVATE : 显示基本信息,如通知的图标,但隐藏通知的全部内容;

2.VISIBILITY_PUBLIC: 显示通知的全部内容;

  1. VISIBILITY_SECRET: 不显示任何内容,包括图标。

NotificationCompat.Builderbuilder= newNotificationCompat.Builder(this);

builder.setContentText("安装中...");

builder.setProgress(0,0,true);

newThread(new Runnable() {

publicvoid run() {

for(inti=0;i<100;i++){

builder.setProgress(100,i,false);

nm.notify(3,builder.build());

}

private void userNotification() {

Notification.Builder builder = newNotification.Builder(this);

builder.setSmallIcon(R.mipmap.ic_launcher);

builder.setContentText("内容");

builder.setContentTitle("头部");

/**

*RemoteViews是可以在别的进程(系统进程)中显示的View,并且提供了一组跨进程更新它界面的操作

* 两个参数,第一个布局所在包名

* 第二个是布局Id

*布局文件是自己创建的,随便一个线性布局,加一个textView和ImageView即可

*/

RemoteViews remoteViews = newRemoteViews(getPackageName(), R.layout.simple_layout);

}

private void notificationStyle() {

NotificationManager manager =(NotificationManager) getSystemService(NOTIFICATION_SERVICE);

Notification.Builder builder = newNotification.Builder(this);

builder.setSmallIcon(R.mipmap.ic_launcher);

builder.setContentTitle("列表通知");

// builder.setContentTitle("大图通知");

//通知内容为大图片

Notification.BigPictureStylebigPictureStyle = new Notification.BigPictureStyle();

bigPictureStyle.bigPicture(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher));

//通知内容为列表显示

Notification.InboxStyle inboxStyle =new Notification.InboxStyle();

inboxStyle.addLine("李白");

inboxStyle.addLine("猴子");

inboxStyle.addLine("露娜");

builder.setStyle(inboxStyle);

//不能跨APP

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

//intent - PendingIntent

PendingIntent intent1 =PendingIntent.getActivity(this, 10, intent, PendingIntent.FLAG_ONE_SHOT);

builder.setFullScreenIntent(intent1,true);

builder.setContentIntent(intent1);

manager.notify(9, builder.build());

}

n创建自定义通知

n练习:

u创建自定义通知布局

u设置通知属性

u构建布局

u设置通知布局


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部