Android 通知栏 通知 (Notification)

1.获取通知管理者

NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);


2.通知的获取

 NotificationCompat.Builder(Main2Activity.this)

NotificationCompat 在supper- v4 包下

下面是具体代码:


public class Main2Activity extends Activity implements View.OnClickListener {

private Button btn;

//创建通知管理者

    private NotificationManager manager;

//通知

    private Notification notification;

@Override

    protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main2);

btn = findViewById(R.id.btn);

btn.setOnClickListener(this);

manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

//创建意图

        Intent intent =new Intent(Main2Activity.this, MainActivity.class);

PendingIntent pendingIntent = PendingIntent.getActivity(Main2Activity.this,0, intent,0);

//创建通知

        notification =new NotificationCompat.Builder(Main2Activity.this)

.setContentTitle("我是一个通知")

.setContentText("我是通知的文本")

.setWhen(System.currentTimeMillis())//时间

                .setSmallIcon(R.mipmap.ic_launcher)//设置小图标

                .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))//设置下拉后显示的图标

                .setContentIntent(pendingIntent)//设置意图 目的是点击通知打开那个页面

                .setAutoCancel(true)//传入true  打开通知后关闭页面

//                .setVibrate(new long[]{0, 1000, 1000, 1000}) //设置震动 收到通知0S后震动1S 休息1S 在震动1S

//震动需要添加权限  VIBRATE

                .setDefaults(Notification.DEFAULT_ALL)//跟随系统 震动和播放铃声

                .setLights(Color.GREEN,1000,100)//设置信号灯的颜色

                .build();

}

@Override

    public void onClick(View v) {

switch (v.getId()) {

case R.id.btn: {

//弹出通知

                manager.notify(1,notification);

break;

}

}

}

}

注意 如果需要提示震动,需要在 清单文件中添加权限

另外 点击通知跳转到页面后,关闭页面有两种方式。一是上文提到的,另一种是显式调用NotificationManager的cancel()将他取消。用法就写在你开启的页面 onCreat()中即可。需要注意的一点是 cancel()中传入的值 要跟你创建的通知传入的ID是一致的才能取消掉这个通知。

高级用法:

//设置长文本

setStyle(new NotificationCompat.BigTextStyle().bigText("我就是测试一下长文本的显示是不是可以实现"))

//设置图片的显示

.setStyle(new NotificationCompat.BigPictureStyle()

.bigPicture(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)))

.setPriority(NotificationCompat.PRIORITY_MAX) //设置通知重要程度


你可能感兴趣的:(Android 通知栏 通知 (Notification))