一:说明
通知用法比较灵活 ,可以在活动,广播,服务里创建。
示例
public class NotifiActivity extends AppCompatActivity implements View.OnClickListener { private NotificationManager manager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_notifi); initView(); } private void initView() { findViewById(R.id.notification).setOnClickListener(this); } private void initNoti() { // 设置点击通知要做的事,可以取指明一个意图,启动活动,启动服务,发送广播等 // 这里设置的跳转的操作,这里点击通知栏跳转ContentActivity Intent intent = new Intent(this, ContentActivity.class); // pendingIntent实例的获取方式,可以通过getActivity/getBroadcast/getService获取参数一致 // 参数1:上下文。2,一般用0。 3.PendingIntent的意图。4.PendingIntent的行为,一般用0 PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0); // 获取一个通知管理者 manager = ((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)); // 用v4包里的NotificationCompat.Builder构建Notification的实例,适配机型 Notification notification = new NotificationCompat.Builder(getApplicationContext()) .setContentTitle("通知标题内容") // .setContentText("通知正文内容") .setWhen(System.currentTimeMillis())//指定通知被创建的时间 .setSmallIcon(R.mipmap.ic_launcher)//设置通知的小图标,会显示在系统的状态栏上 //设置通知的大图,下拉状态栏右侧显示的图标 .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.a)) .setContentIntent(pendingIntent)//设置点击后做的操作 .setAutoCancel(true)//点击后,让通知从状态栏消失 .setVibrate(new long[]{0, 1000, 0, 1000})//设置震动 .setLights(Color.GREEN, 1000, 1000)//设置提示灯 // 如果想要设置的通知正文的文本显示全。则如下设置通知正文内容 .setStyle(new NotificationCompat.BigTextStyle().bigText("lalallallaywefihoisfvgiash" + "vjajfbsvauoflhbadoikvbauivkjabsciakjbsdvauskjbvbasbdkvabjshvuiakvbsivauif" + " usfuryfurbvasvbajskvhaiofrrubjfvaiyfgrbniasd")) // .setSound()设置声音,参数为声音文件的路径 // .setDefaults(NotificationCompat.DEFAULT_ALL)//使用通知的默认效果 .setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(), R.mipmap.a1))) //设置通知的优先级PRIORITY_DEFAULT默认PRIORITY_MIN最低PRIORITY_LOW较低PRIORITY_HIGH较高PRIORITY_MAX最高 .setPriority(NotificationCompat.PRIORITY_MAX) .build(); // 参数1:为id,id每次发送都不同,我图简单写死了,参数2为notification对象 manager.notify(1, notification);//发送通知 } @Override public void onClick(View v) { switch (v.getId()) { case R.id.notification: initNoti(); break; } } }