(此文是在 Visual Studio Xamarin 中的代码)
通知类
SetSmallIcon:顶部状态栏的图标
SetLargeIcon:拉下来后显示通知时,通知左边的图标,必须指定。受不了的是其参数类型和 SetSmallIcon 不一样,名称和功能如此一致,竟然参数类型不一致。
SetTicker:顶部状态栏的文字,比如“你有 1 条新消息”,但是不是所有手机都会显示。
SetContentTitle:如果名称用 SetTitle 更好理解。
SetContentText:如果名称用 SetContent 更好理解。
SetSubText:如果名称用 SetSubContent 更好理解。
SetNumber:通知栏右下角显示的通知数。
SetWhen:在通知栏右上角显示这个通知是什么时候发出的,这个时间是 1970 年 1 月 1 日过后经过的毫秒数,比如:3600 * 24 * 1000 就是指 1970 年 1 月 2 日。没啥用。
SetProgress:显示一个进度条,像流量监控、音乐播放都有进度条。如果最后一个参数为 true,则进度条会动起来。
SetDefaults:这命名我也是醉了。设置提醒方式:声音、震动、光,三种可选,当然“光”这个东西,有些手机不听代码使唤。
SetOngoing:如果为 true,就不能通过左滑、右滑让通知消失,像音乐播放就是这种效果。
SetAutoCancel:点击通知后通知是否消失(后面还会提到)。
以上设置,除了用方法可以设置,有的也可以用属性设置。
C# 程序员肯定非常不适应安卓这种起名太随意的习惯。
让通知显示出来
以上虽然定义了通知类,但没显示出来。
Notify 中的 1 是随便起的,后面会用到。
删除通知
Cancel 中的 1 就是 Notify 中的 1。
如果我们不是 Cancel,而是继续 Notify,第一个值仍然写 1,那么新通知就会替换掉前一次的通知。
动作
前面虽然显示了通知,但是点击通知没有任何动作,而且 SetAutoCancel 似乎也没有用,这就是因为我们没有指定动作造成的。
Intent 构造函数的参数指示点击通知后要跳转的 Activity。
PendingIntent.GetActivity 第二个参数没用了,随便写。
PendingIntentFlags.CancelCurrent 表示只有最后一次 PendingIntent 有效,之前的都无效了。
ContentIntent 它的类型并不是 Intent,而是 PendingIntent。