第一行代码笔记 Notification通知

来源:互联网 发布:淘宝分销 编辑:程序博客网 时间:2024/06/14 23:44

一:说明

通知用法比较灵活 ,可以在活动,广播,服务里创建。

示例

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;        }    }}
0 0