一、通知栏的内容
1、图标
2、标题
3、内容
4、时间
5、点击后的相应
二、如何实现通知栏
1、获取NotificationManager。
2、显示通知栏:notify(id,notification);
3、取消通知栏:cancle(id);
4、构造Notification并设置显示内容;
5、通知栏通知可以设置声音提示,指示灯,以及震动效果。
三、示例代码:发送通知和取消通知
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="通知栏的使用" /> <Button android:id="@+id/btn_send" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="发送通知"/> <Button android:id="@+id/btn_cancel" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="取消通知"/> </LinearLayout>
添加权限:
<!--指示灯的权限--> <uses-permission android:name="android.permission.FLASHLIGHT" /> <!--震动的权限--> <uses-permission android:name="android.permission.VIBRATE" />
后台代码:
package com.example.zhengcheng.myapplication; import android.app.Activity; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.app.Notification; public class MainActivity extends Activity { Button btn_send; //发送按钮 Button btn_cancel; //取消按钮 NotificationManager manager; //通知控制类 int notificationID; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //通过系统服务来创建NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); btn_send = (Button) findViewById(R.id.btn_send); btn_send.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { sendNotication(); } }); btn_cancel = (Button) findViewById(R.id.btn_cancel); btn_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { manager.cancel(notificationID); } }); } /** * 发送通知信息 */ private void sendNotication() { Intent intent = new Intent(this, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0); Notification.Builder builder = new Notification.Builder(this); builder.setSmallIcon(R.mipmap.ic_launcher); //设置图标 builder.setTicker("手机状态栏提示"); //手机状态栏提示 builder.setWhen(System.currentTimeMillis()); //设置时间 builder.setContentTitle("通知栏标题"); //设置标题栏 builder.setContentText("我来自NotificationDemo"); //设置通知栏内容 builder.setContentIntent(pendingIntent); //设置点击通知栏时弹出哪一个Activity // builder.setDefaults(Notification.DEFAULT_SOUND); //设置提示声音 // builder.setDefaults(Notification.DEFAULT_LIGHTS); //设置指示灯 // builder.setDefaults(Notification.DEFAULT_VIBRATE); //设置震动 builder.setDefaults(Notification.DEFAULT_ALL); //设置上面所有的效果 Notification notification = builder.build(); //Android4.1以上的版本, // Notification notification = builder.getNotification(); //如果4.1以下的版本使用 builder.getNotification(); manager.notify(notificationID, notification); } }