Notification就是我们日常通知栏看到的通知,实现比较简单,固定写法.
下面直接上代码
public class MainActivity extends AppCompatActivity {
Context context = this;
private NotificationManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.inject(this);
}
@OnClick({R.id.send_notification, R.id.cancel_notification})
public void onClick(View view) {
switch (view.getId()) {
case R.id.send_notification:
send();
break;
case R.id.cancel_notification:
cancle();
break;
}
}
private void cancle() {
if (manager != null)
manager.cancel(3);// 该 id 要与发送notification是的id保持一致
}
public void send() {
Intent i = new Intent(context, MainActivity.class);
PendingIntent pi = PendingIntent.getActivity(context, 0, i, 0);//延迟(等待)意图
Notification.Builder builder = new Notification.Builder(context)// 构建通知
.setDefaults(Notification.DEFAULT_ALL)
.setSmallIcon(R.mipmap.ic_launcher)
.setTicker("您有一条新物流信息")// 不下拉通知栏时看到的内容(带动画那个)
.setAutoCancel(true)// 点击后通知消失
.setContentTitle("中粮商城")
.setContentText("快递小哥正在为您派件,请保持手机畅通...")// 在通知栏预览的消息内容
.setWhen(System.currentTimeMillis())// 时间(一般为当前时间)
.setContentIntent(pi);// 点击通知后的事情(意图)
// Notification n = builder.build();// 生成通知 16以上才能用
Notification n = builder.getNotification();
// 得到通知管理器
manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(3, n);// 发送该通知 3:id(唯一的,系统根据通知的id去维护通知)
}
}


通知在开发中多用于推送,下载任务以及即时通讯.