一、Notitfcation 通知
1、交互式的通知
NotificationManager manager1 = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder1 = new Notification.Builder(this);
builder1.setSmallIcon(R.mipmap.ic_launcher);
builder1.setContentTitle("这是标题");
builder1.setContentText("这是内容部分");
builder1.setPriority(Notification.PRIORITY_MAX);
builder1.setDefaults(Notification.DEFAULT_ALL);
builder1.setAutoCancel(true);
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
builder1.setContentIntent(pendingIntent);
Notification build1 = builder1.build();
manager1.notify(1, build1);
2、发送大图或列表通知
NotificationManager manager2 = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder2 = new Notification.Builder(this);
builder2.setSmallIcon(R.mipmap.ic_launcher);
builder2.setContentTitle("这是标题");
builder2.setPriority(Notification.PRIORITY_MAX);
builder2.setDefaults(Notification.DEFAULT_ALL);
Notification.BigPictureStyle bigPictureStyle = new Notification.BigPictureStyle();
bigPictureStyle.bigLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher_round));
builder2.setStyle(bigPictureStyle);
builder2.setAutoCancel(true);
Intent intent1 = new Intent(this, MainActivity.class);
PendingIntent pendingIntent1 = PendingIntent.getActivity(this, 0, intent1, PendingIntent.FLAG_UPDATE_CURRENT);
builder2.setContentIntent(pendingIntent1);
Notification build2 = builder2.build();
manager2.notify(1, build2);
3、发送自定义通知
NotificationManager manager3 = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
final Notification.Builder builder3 = new Notification.Builder(this);
builder3.setSmallIcon(R.mipmap.ic_launcher);
builder3.setContentTitle("这是标题");
builder3.setPriority(Notification.PRIORITY_MAX);
builder3.setDefaults(Notification.DEFAULT_ALL);
RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.layout_custom);
remoteViews.setImageViewResource(R.id.iv_title, R.mipmap.ic_launcher);
remoteViews.setTextViewText(R.id.tv_titile, "练习-刘德华");
builder3.setCustomContentView(remoteViews);
builder3.setAutoCancel(true);
Intent intent2 = new Intent(this, MainActivity.class);
PendingIntent pendingIntent2 = PendingIntent.getActivity(this, 0, intent2, PendingIntent.FLAG_UPDATE_CURRENT);
builder3.setContentIntent(pendingIntent2);
Notification build3 = builder3.build();
manager3.notify(1, build3);
4、通知分组
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder mBuilder0 = new Notification.Builder(this);
Notification.Builder mBuilder1 = new Notification.Builder(this);
Notification.Builder mBuilder2 = new Notification.Builder(this);
Notification.Builder mBuilder3 = new Notification.Builder(this);
mBuilder0.setGroup("2");
mBuilder0.setSmallIcon(R.mipmap.ic_launcher);
mBuilder0.setGroupSummary(true);
mBuilder0.setContentTitle("111");
mBuilder0.setContentText("222");
mBuilder1.setGroup("2");
mBuilder1.setSmallIcon(R.mipmap.ic_launcher);
mBuilder1.setContentTitle("33333");
mBuilder1.setContentText("44444");
mBuilder2.setGroup("2");
mBuilder2.setSmallIcon(R.mipmap.ic_launcher);
mBuilder2.setContentTitle("5555555");
mBuilder2.setContentText("6666666");
mBuilder3.setGroup("2");
mBuilder3.setSmallIcon(R.mipmap.ic_launcher);
mBuilder3.setContentTitle("7777777");
mBuilder3.setContentText("88888888");
notificationManager.notify(0, mBuilder0.build());
notificationManager.notify(1, mBuilder1.build());
notificationManager.notify(2, mBuilder2.build());
notificationManager.notify(3, mBuilder3.build());
5、发送进度条通知
final NotificationManager manager4 = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
final Notification.Builder builder4 = new Notification.Builder(this);
builder4.setContentTitle("下载");
builder4.setContentText("下载中……");
builder4.setSmallIcon(R.mipmap.ic_launcher);
final Timer timer=new Timer();
timer.schedule(new TimerTask() {
int progress;
@Override
public void run() {
builder4.setContentText("正在下载,当前进度"+progress);
builder4.setProgress(100,progress,false);
progress+=10;
manager4.notify(6,builder4.build());
if(progress==100){
builder4.setContentText("正在安装");
builder4.setProgress(0,0,true);
manager4.notify(6,builder4.build());
try {
Thread.sleep(7000);
} catch (InterruptedException e) {
e.printStackTrace();
}
manager4.cancel(6);
timer.cancel();
}
}
}, 0, 1000);
Notification build4 = builder4.build();
manager4.notify(8,build4);
二、双击退出当前APP
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK){
if (System.currentTimeMillis() - time > 2000 ){
Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();
time = System.currentTimeMillis();
return true;
}else {
finish();
}
}
return super.onKeyDown(keyCode, event);
}