简单的通知
代码展示
private void initView() {
btn_Button = (Button) findViewById(R.id.btn_button);
btn_Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//管理者
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(MainActivity.this);
builder.setContentTitle("我是标题");
builder.setContentText("我是内容");
builder.setSmallIcon(R.mipmap.ic_launcher);//小图标必须设置
builder.setGroup("组1");
被设置setGroupSummary为true的消息会隐藏内容,其内容会显示另外分组成员信息.
builder.setGroupSummary(false);
//创建发送的对象 构建一下
Notification build = builder.build();
Notification.Builder builder1 = new Notification.Builder(MainActivity.this);
builder1.setContentTitle("我是标题111");
builder1.setSmallIcon(R.mipmap.ic_launcher);
builder1.setContentText("我是内容111");
builder1.setGroup("组1");
//通知
//id值相同就是更新
manager.notify(1,build);
manager.notify(2, builder1.build());
}
});
}
效果展示
注意事项
设置小图标必须设置,不然会报错,不出效果。
通知分组
代码展示
private void initView() {
btn_Button = (Button) findViewById(R.id.btn_button);
btn_Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//管理者
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(MainActivity.this);
builder.setContentTitle("我是标题");
builder.setContentText("我是内容");
builder.setSmallIcon(R.mipmap.ic_launcher);//小图标必须设置
builder.setGroup("组1");
被设置setGroupSummary为true的消息会隐藏内容,其内容会显示另外分组成员信息.
builder.setGroupSummary(false);
//创建发送的对象 构建一下
Notification build = builder.build();
Notification.Builder builder1 = new Notification.Builder(MainActivity.this);
builder1.setContentTitle("我是标题111");
builder1.setSmallIcon(R.mipmap.ic_launcher);
builder1.setContentText("我是内容111");
builder1.setGroup("组1");
//通知
//id值相同就是更新
manager.notify(1,build);
manager.notify(2, builder1.build());
}
});
}
效果展示
注意事项
首先,组名必须得是一样的。
其次,( 被设置setGroupSummary为true的消息会隐藏内容,其内容会显示另外分组成员信息.)就是设置了的通知会隐藏,不会显示出来。
进度条通知
代码展示
private void initView() {
btn_Pro = (Button) findViewById(R.id.btn_pro);
btn_Pro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//获取通知的管理者
final NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//获取通知的构建
final Notification.Builder builder = new Notification.Builder(Main2Activity.this);
//设置小图标 必须有
builder.setSmallIcon(R.mipmap.ic_launcher);
//设置内容,标题
builder.setContentTitle("我是标题");
builder.setContentText("我是内容");
//true就是模糊的进度 false是准确的进度
builder.setProgress(100,0,false);
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
int index = 0;
@Override
public void run() {
index += 10;
builder.setProgress(100,index,false);
systemService.notify(1,builder.build());
if(index >= 100){
timer.cancel();
builder.setContentText("正在安装。。。");
builder.setProgress(0,0,true);
systemService.notify(1,builder.build());
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
systemService.cancel(1);
}
}
},0,1000);
systemService.notify(1,builder.build());
}
});
}
效果展示
PendingIntent通知
代码展示
private void initView() {
btn_Intent = (Button) findViewById(R.id.btn_intent);
btn_Intent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//用于通知的管理者
NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(Main3Activity.this);
//必须设置小图标
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentText("我是内容");
builder.setContentTitle("我是标题");
Intent intent = new Intent(Main3Activity.this,MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(Main3Activity.this,200,intent,PendingIntent.FLAG_CANCEL_CURRENT);
//加载
builder.setFullScreenIntent(pendingIntent,true);
//自动取消
builder.setAutoCancel(true);
//级别
builder.setPriority(Notification.PRIORITY_MAX);
//这个必须加,否则会出不来
builder.setDefaults(Notification.DEFAULT_ALL);
systemService.notify(1,builder.build());
}
});
}
效果展示
注意事项
可以跳转,并且设置优先级的时候必须也得设置builder.setPriority()的属性,否则不会出来。
自定义通知
代码展示
private void initView() {
btn_Lauout = (Button) findViewById(R.id.btn_lauout);
btn_Lauout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//管理者
NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(Main4Activity.this);
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentTitle("我是标题");
builder.setContentText("我是内容");
RemoteViews remoteViews = new RemoteViews(getPackageName(),R.layout.remote_layout);
remoteViews.setTextViewText(R.id.tv_tou,"哈哈哈");
builder.setCustomContentView(remoteViews);
systemService.notify(1,builder.build());
}
});
}
LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_tou"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="头部"
android:textSize="30sp"/>
<TextView
android:id="@+id/tv_wei"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="尾部"
android:textSize="30sp"/>
效果展示
注意事项
必须得有一个用于展示的布局,然后在去替换自己想要展示的通知。