通知
Notification表示一个通知对象,可以描述一个状态栏上的通知信息
NotificationManager表示一个通知服务,通知显示和隐藏的功能
nManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
显示通知
判断当前所在的平台版本,可以使用Build.VERSION.SDK_INT
if (Build.VERSION.SDK_INT >= 16) {
Notification.Builder b = new Notification.Builder(
getApplicationContext());
// 组装信息
// 在状态栏上停留一段时间之后小时的提示文本
b.setTicker("您有新短消息");
b.setSmallIcon(R.drawable.ic_launcher);
// 配置下拉的内容标题
b.setContentTitle("短信");
b.setContentText("今天天气晴朗,啦啦啦啦啦");
// 配置通知时间
b.setWhen(System.currentTimeMillis());
// 点击通知,跳转到一个目标组件
Intent it = new Intent(NotificationActivity.this,
MyListActivity.class);
//延迟的意图(Context对象,意图的id,具体的意图,意图更新方式)
PendingIntent pIntent = PendingIntent.getActivity(
NotificationActivity.this, 1, it,
PendingIntent.FLAG_UPDATE_CURRENT);
b.setContentIntent(pIntent);
// 显示通知
n = b.build();
}
显示通知
nManager.notify(123456, n);
取消显示
nManager.cancel(123456)
;
Notification的额外设置
//提醒的高级功能(闪灯、声音、震动)
n.defaults = Notification.DEFAULT_LIGHTS;
//通知的清除方式(FLAG_AUTO_CANCEL自动清除,FLAG_NO_CLEAR不自动清除)
n.flags = Notification.FLAG_NO_CLEAR;
//自定义通知
//创建RemoteViews(应用包名,布局id)
RemoteViews remoteView = new RemoteViews(
"com.xykj.android_apidemo", R.layout.notify_layout);
remoteView.setTextViewText(R.id.m_text, "这是一个自定义的通知内容");
remoteView.setOnClickPendingIntent(R.id.m_btn, pIntent);
//设置自定义的下拉内容
b.setContent(remoteView);