美文网首页
Android notification

Android notification

作者: 探索的码易 | 来源:发表于2019-02-21 11:29 被阅读0次

    Notification

    通知是Android [Material Design] 的ui 比较重要的一环;

    创建

    为了适配大部分的版本 我们用v4 包下的 NotificationCompat.Builder 来创建获取Notification ;获取NotificationManager ,通过notify 来通知;
    Notification 常见的设置;

    • setSmallIcon 设置小图标
    • setContentTitle 设置标题
    • ContentText 设置文本内容
    • setPriority() 设置优先级

    PendingIntent 用来创建,点击通知的活动;
    我们借用TaskStackBuilder 返回栈 来更好 来操作创建;
    示例代码如下:

            new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.notification_icon)
            .setContentTitle("My notification")
            .setContentText("Hello World!");
    // 创建点击返回的activity 
    Intent resultIntent = new Intent(this, ResultActivity.class);
    
    //创建返回栈
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
    // Adds the back stack for the Intent (but not the Intent itself)
    stackBuilder.addParentStack(ResultActivity.class);
    // Adds the Intent that starts the Activity to the top of the stack
    stackBuilder.addNextIntent(resultIntent);
    PendingIntent resultPendingIntent =
            stackBuilder.getPendingIntent(
                0,
                PendingIntent.FLAG_UPDATE_CURRENT
            );
    mBuilder.setContentIntent(resultPendingIntent);
    NotificationManager mNotificationManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    // mId allows you to update the notification later on.
    mNotificationManager.notify(mId, mBuilder.build());
    

    取消通知

    • 用户单独或通过使用“全部清除”清除了该通知(如果通知可以清除)。
    • 用户点击通知,且您在创建通知时调用了 setAutoCancel()
    • 您针对特定的通知 ID 调用了 cancel()。此方法还会删除当前通知。
    • 您调用了 cancelAll()]方法,该方法将删除之前发出的所有通知。

    QA

    国内部分手机的通知栏;需要在设置的内给予权限;(这也是国内开发者个工作比国外多的原因)

    PendingIntent 一定要配置点击通知的需要返回的活动界面;如果不设置会导致 PendingIntent的空指针

    本文参看 官网

    相关文章

      网友评论

          本文标题:Android notification

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