Notification是显示在手机状态栏的消息(手机状态栏位于手机最顶端),代表一种全局效果的通知。
通知栏的内容
图标
标题
内容
时间
点击后响应
如何实现通知栏
获取NotificationManager
显示通知栏:notify(id, notification);
取消通知栏:cancel(id);
构造Notification并设置显示内容
通知栏通知可以设置声音提示,指示灯以及震动效果
public class MainActivity extends Activity implements OnClickListener {
NotificationManager manager; // 通知控制类
int notification_ID;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
findViewById(R.id.btn_send).setOnClickListener(this);
findViewById(R.id.btn_cancel).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_send:
sendNotification();
break;
case R.id.btn_cancel:
manager.cancel(notification_ID);
break;
default:
break;
}
}
/**
* 构造notification并发送到通知栏
*/
private void sendNotification() {
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pintent = PendingIntent.getActivity(this, 0, intent, 0);
Builder builder = new Notification.Builder(this);
builder.setSmallIcon(R.drawable.ic_launcher); // 设置图标
builder.setTicker("hello"); // 手机状态栏的提示
builder.setWhen(System.currentTimeMillis()); // 设置时间
builder.setContentTitle("通知栏通知"); // 设置标题
builder.setContentText("我来自NotificationDemo"); // 设置通知内容
builder.setContentIntent(pintent); // 点击后的意图
// builder.setDefaults(Notification.DEFAULT_SOUND); // 设置提示声音
// builder.setDefaults(Notification.DEFAULT_LIGHTS); // 设置指示灯 需要权限
// builder.setDefaults(Notification.DEFAULT_VIBRATE); // 设置震动效果 需要权限
builder.setDefaults(Notification.DEFAULT_ALL);
Notification notification = builder.build(); // 4.1以上 (android:minSdkVersion="16"以上)
// builder.getNotification(); 4.1以下
manager.notify(notification_ID, notification);
}
}
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-permission android:name="android.permission.VIBRATE"/>