专高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: 显示通知的全部内容;
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设置通知布局
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
