美文网首页
Android通知栏notification简易创建

Android通知栏notification简易创建

作者: babybus_superdo | 来源:发表于2016-09-02 00:29 被阅读2229次

    安卓通知栏通知是我们经常会接触到的,它可以提醒我们某些应用的最新推送消息,社交软件等应用的信息通知,还可以在通知栏上显示例如播放器等常驻的功能。
    接下来我们通过代码创建一个通知:

    //全局通知管理者,通过获取系统服务获取
    NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    //通知栏构造器,创建通知栏样式
    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this); 
    // 将来意图,用于点击通知之后的操作,内部的new intent()可用于跳转等操作
    PendingIntent mPendingIntent = PendingIntent.getActivity(this, 1, new Intent(), Notification.FLAG_AUTO_CANCEL);
    

    接下来设置通知样式:

    //设置通知栏标题
    mBuilder.setContentTitle("测试标题")
    //设置通知栏显示内容
    .setContentText("测试内容") 
    //设置通知栏点击意图
    .setContentIntent(mPendingIntent) 
    //通知首次出现在通知栏,带上升动画效果的
    .setTicker("测试通知来啦") 
    //通知产生的时间,会在通知信息里显示,一般是系统获取到的时间
    .setWhen(System.currentTimeMillis())
     //设置该通知优先级
    .setPriority(Notification.PRIORITY_DEFAULT)
    //设置这个标志当用户单击面板就可以让通知将自动取消  
    .setAutoCancel(true)
    //使用当前的用户默认设置
    .setDefaults(Notification.DEFAULT_VIBRATE)
    //设置通知小ICON(应用默认图标)
    .setSmallIcon(R.drawable.ic_launcher);
    

    最后在发送通知

    mNotificationManager.notify(notifyId, mBuilder.build());  
    

    简易的通知栏notification就创建完成。

    补充资料:
    而PendingIntent可以看作是对Intent的包装。PendingIntent主要持有的信息是它所包装的Intent和当前Application的Context。正由于PendingIntent中保存有当前Application的Context,使它赋予带他程序一种执行的Intent的能力,就算在执行时当前Application已经不存在了,也能通过存在PendingIntent里的Context照样执行Intent。

    你可以通过点击notification跳转activity,网页等intent的一些操作,还可以通过service进行操作。
    例如跳转网页:

    //跳转url的intent
    Intent it = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.babybus.com"));
    //配置在pengdingintent中
    PendingIntent pendingIntent = PendingIntent.getActivity(App.get().mainActivity,requestCode, it, NOTIFY_FLG);
    

    通过service则可以:

    Intent clickIntent = new Intent(App.get().mainActivity, ClickService.class);
    clickIntent.putExtra("text","点击测试");
    PendingIntent pendingIntent = PendingIntent.getService(App.get().mainActivity, requestCode, clickIntent, NOTIFY_FLG);
    

    创建service,在AndroidManifest.xml中注册,在其中的onStartCommand中获取从intent中得到的参数。

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {      
        String text = intent.getStringExtra("text");   
        //通过该text进行操作
        return super.onStartCommand(intent, flags, startId);
    }
    

    参考资料:[http://blog.csdn.net/vipzjyno1/article/details/25248021/]

    _本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 ) _
    转载自【宝宝巴士SuperDo团队】原文链接: http://www.jianshu.com/p/5bbc2a73ba9c

    相关文章

      网友评论

          本文标题:Android通知栏notification简易创建

          本文链接:https://www.haomeiwen.com/subject/dqehettx.html