android 4.0前台服务,android前台服务以及通知

什么是前台服务

前台服务是那些被认为用户知道(用户认可所认可)且在系统内存不足的时候不允许系统杀死的服务。前台服务必须给状态栏提供一个通知,它被放到正在运行(Ongoing)标题之下——这就意味着通知只有在这个服务被终止或从前台主动移除通知后才能被解除。

通知

Notification支持文字内容显示、震动、三色灯、铃声等多种提示形式,在默认情况下,Notification仅显示消息标题、消息内容、送达时间这3项内容。

标准样式

b59d2e51ddc5?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

扩展样式

b59d2e51ddc5?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

自定义样式

b59d2e51ddc5?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

使用notification

Notification:通知信息类,它里面对应了通知栏的各个属性。

NotificationManager : 状态栏通知的管理类,负责发通知、清除通知等操作。

构建通知的步骤:

获取状态通知栏管理类实例

NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);

实例化通知栏构造器NotificationCompat.Builder

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);

对Builder进行配置

// 设置通知的基本信息:icon、标题、内容

mBuilder .setSmallIcon(R.drawable.notification_icon)

mBuilder .setContentTitle("My notification")

mBuilder .setContentText("Hello World!");

设置通知栏PendingIntent(点击动作事件等都包含在这里)

// 设置通知的点击行为:这里启动一个 Activity

Intent intent = new Intent(this, ResultActivity.class);

PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

mBuilder .setContentIntent(pendingIntent);

发送通知请求

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

更新通知

要想更新通知,需要利用NotificationManager.notify()

的id参数,该id在应用内需要唯一。要想更新特定id的通知,只需要创建新的Notification,并发出与之前所用 id 相同的 Notification。如果之前的通知仍然可见,则系统会根据新的 Notification 对象的内容更新该通知。相反,如果之前的通知已被清除,系统则会创建一个新通知。

删除通知

删除通知可以有多种方式:

1.通过NotificationCompat.Builder设置setAutoCancel(true),这样当用户点击通知后,通知自动删除。

2.通过NotificationManager.cancel(id)方法,删除指定 id 的通知

3.通过 NotificationManager.cancelAll()方法,删除该应用的所有通知

关于前台服务和通知更具体的内容可参考紫豪

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值