双击退出
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK ){
//判断用户两次按键的时间差是否在一个预期值之内,是的话直接直接退出,不是的话提示用户再按一次后退键退出。
if(System.currentTimeMillis() - exitTime > 2000){
Toast.makeText(this,"在点就退出",Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
//当返回true时,表示已经完整地处理了这个事件,并不希望其他的回调方法再次进行处理,而当返回false时,
// 表示并没有完全处理完该事件,更希望其他回调方法继续对其进行处理,
return true;
}else{
finish(); //结束当前activity
}
}
return super.onKeyDown(keyCode, event);
Notification
普通通知
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190805210254831.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk2NTg2Nw==,size_16,color_FFFFFF,t_70)
Notification.Builder builder = new Notification.Builder(MainActivity.this);
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentTitle("标题");
builder.setContentText("内容........");
Notification build = builder.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1,build);
可点击通知(带交互)
Intent intent = new Intent(MainActivity.this, MainActivity.class);
PendingIntent activity = PendingIntent.getActivity(MainActivity.this, 0, intent, PendingIntent.FLAG_IMMUTABLE);
Notification.Builder builder = new Notification.Builder(MainActivity.this);
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentTitle("标题");
builder.setContentText("内容000000");
builder.setContentIntent(activity);
builder.setPriority(Notification.PRIORITY_MAX);
builder.setDefaults(Notification.DEFAULT_ALL);
Notification build = builder.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(2,build);
带有通知效果的
Intent intent = new Intent(MainActivity.this, MainActivity.class);
PendingIntent activity = PendingIntent.getActivity(MainActivity.this, 0, intent, PendingIntent.FLAG_IMMUTABLE);
Notification.Builder builder = new Notification.Builder(MainActivity.this);
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentTitle("标题");
builder.setContentText("内容000000");
builder.setContentIntent(activity);
//设置声音和 显示位置
builder.setPriority(Notification.PRIORITY_MAX);
builder.setDefaults(Notification.DEFAULT_ALL);
Notification build = builder.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(2,build);
通知样式 (大图和列表)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019080521232021.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk2NTg2Nw==,size_16,color_FFFFFF,t_70)
Notification.Builder builder = new Notification.Builder(MainActivity.this);
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentTitle("标题");
Notification.BigPictureStyle bigPictureStyle = new Notification.BigPictureStyle();
bigPictureStyle.bigPicture(BitmapFactory.decodeResource(getResources(), R.mipmap.xingkong));
Notification.InboxStyle inboxStyle = new Notification.InboxStyle();
inboxStyle.addLine("猴子");
inboxStyle.addLine("露娜");
inboxStyle.addLine("孙尚香");
builder.setPriority(Notification.PRIORITY_MAX);
builder.setDefaults(Notification.DEFAULT_ALL);
// builder.setStyle(bigPictureStyle);
builder.setStyle(inboxStyle);
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification build = builder.build();
notificationManager.notify(1,build);
自定义通知
Notification.Builder builder = new Notification.Builder(MainActivity.this);
RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.diy_layout);
remoteViews.setTextViewText(R.id.show_id,"哈哈哈哈");
remoteViews.setImageViewResource(R.id.show_img,R.mipmap.ic_launcher);
builder.setCustomContentView(remoteViews);
Notification build = builder.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(2,build);
通知分组
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190805212657844.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk2NTg2Nw==,size_16,color_FFFFFF,t_70)
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(MainActivity.this);
Notification.Builder builder1 = new Notification.Builder(MainActivity.this);
Notification.Builder builder2 = new Notification.Builder(MainActivity.this);
Notification.Builder builder3 = new Notification.Builder(MainActivity.this);
builder.setGroup("2");
builder.setSmallIcon(R.mipmap.ic_launcher);
// builder.setGroupSummary(true);
builder.setContentTitle("11111111111");
builder.setContentText("22222222222222");
builder1.setGroup("2");
builder1.setSmallIcon(R.mipmap.ic_launcher);
builder1.setGroupSummary(true);
builder1.setContentTitle("22222222");
builder1.setContentText("3333333");
builder2.setGroup("2");
builder2.setSmallIcon(R.mipmap.ic_launcher);
// builder2.setGroupSummary(true);
builder2.setContentTitle("333333");
builder2.setContentText("44444444");
builder3.setGroup("2");
builder3.setSmallIcon(R.mipmap.ic_launcher);
// builder3.setGroupSummary(true);
builder3.setContentTitle("444444");
builder3.setContentText("5555555555");
notificationManager.notify(0,builder.build());
notificationManager.notify(1,builder1.build());
notificationManager.notify(2,builder2.build());
notificationManager.notify(3,builder3.build());
进度条通知
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190805212740907.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk2NTg2Nw==,size_16,color_FFFFFF,t_70)
final Notification.Builder builder = new Notification.Builder(MainActivity.this);
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentTitle("我是标题");
final NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
int progress;
@Override
public void run() {
builder.setContentText("正在下载,当前进度"+progress);
builder.setProgress(100,progress,false);
progress+=10;
notificationManager.notify(6,builder.build());
if(progress==100){
builder.setContentText("正在安装");
builder.setProgress(0,0,true);
notificationManager.notify(6,builder.build());
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
notificationManager.cancel(6);
timer.cancel();
}
}
},0,1000);