Skip to content
qii edited this page Oct 4, 2013 · 1 revision

四次元没有推送,只有定时拉取数据

AppNewMsgAlarm 设定定时任务

FetchNewMsgService 拉取数据,然后发送2套广播

AppEventAction.NEW_MSG_PRIORITY_BROADCAST 有权限判定的广播

AppEventAction.NEW_MSG_BROADCAST 普通的广播

NEW_MSG_PRIORITY_BROADCAST 本意是拿来拦截用,MainTimeLineActivity 设定一个高权限的 Receiver,在用户打开应用后拦截广播,或者在 ActionBar 做消息提示之类的(未完成),在用户离开应用后,交由 UnreadMsgReceiver(权限比 MainTimeLineActivity 低)负责弹通知栏,因为现在没完成设计,所以实际上 MainTimeLineActivity 没拦截到,全交给 UnreadMsgReceiver 处理

NEW_MSG_BROADCAST 由 CommentsToMeTimeLineFragment(评论列表) MentionsWeiboTimeLineFragment(@的评论列表) MentionsCommentTimeLineFragment(@的微博列表) 3个列表,在 onResume 里面注册监听,收到消息后就在 Tab 上显示有多少未读消息,填充进列表,并向服务器清空未读数。

UnreadMsgReceiver 收到消息后,会将新的消息,总共3个类别,分别给 JBMentionsCommentNotificationServiceHelper、JBMentionsWeiboNotificationServiceHelper、JBCommentsToMeNotificationServiceHelper 3个 Service,交由他们负责显示通知栏

NotificationServiceHelper 在启动后,会判断是否有多条消息,如果是,就给 Notification 添加按钮(“下一条”),让用户在通知栏就可以读遍消息

点击通知栏后,会进入 MainTimeLineActivity,MainTimeLineActivity 将未读的消息保存在 Intent。这时,MentionsTimeLine和CommentsTimeLine的 onResume 会判断是哪个通知进行的,然后切换到那个页面。

随后,CommentsToMeTimeLineFragment(评论列表) MentionsWeiboTimeLineFragment(@的评论列表) MentionsCommentTimeLineFragment(@的微博列表) 3个列表会在 onResume和读取数据库完成后检查 Intent 里面是否有未读的消息,有就填充再清掉 Intent,然后向服务器清空未读数。

Clone this wiki locally