郭霖老师androidpn教学视频笔记

学习郭霖老师的“见证android消息推送时刻”的学习笔记。  视频见慕课网,然后搜索“见证android消息推送时刻”讲的真心好!


ServiceManager

属性:

方法:
startService():启动服务NotificationService
stopService():停止服务NotificationService
setAlias(String alias):设置别名
setTags(final List<String> tagsList):设置标签,即可根据标签进行推送
setNotificationIcon(int iconId):设置通知图标
viewNotificationSettings(Context context):查看通知设置,包括开机启动,震动,铃声等
流程:
调用startService()方法启动了NotificationService服务。

NotificationService继承自service
属性:
XmppManager
ExecutorService:一个按顺序执行的线程池
方法:
connect():调用xmppManager的connect()方法。
disconnect():调用xmppManager的disconnect()方法。
start():注册通知到来的广播接收器registerNotificationReceiver(),注册连接的广播接收器registerConnectivityReceiver()。调用xmppManager的connect()方法。
stop():解绑通知到来的广播接收器unregisterNotificationReceiver(),解绑连接的广播接收器unregisterConnectivityReceiver()。调用xmppManager的disconnect()方法。调用ExecutorService的销毁方法。
流程:
在oncreate()方法中调用start方法,即进行注册广播接收以及进行与服务端的连接。


XmppManager
属性:
XMPPConnection:asmack里面定义的一个类
ConnectionListener:asmack里面定义的一个类
PacketListener:asmack里面定义的一个类
方法:
流程:
1. 调用XMPPConnection的connect方法,会根据情况提交多个task:
a)未注册情况下:提交连接task,然后提交注册task,再提交登陆task。登陆成功之后,保持心跳连接。

b)已注册情况下:提交连接task,然后提交登陆task,登陆成功之后,保持心跳连接

在登陆成功之后,会调用

// packet filter
PacketFilter packetFilter = new PacketTypeFilter(
NotificationIQ.class);
// packet listener
PacketListener packetListener = xmppManager
.getNotificationPacketListener();
connection.addPacketListener(packetListener, packetFilter);

这个NotificationPacketListener就是接受消息的入口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值