1.一种分层状态机实现消息推送的方法,其特征在于,所述分层状态机包括接收层、交换层、路由层和消费层,应用于安卓终端,包括:所述接收层接收服务器发送的分别来自不同平台的消息;
所述接收层将接收到的所述消息与所述交换层分别以两个不同的线程运行于同一进程中将所述消息传递给所述交换层;
所述交换层对所述消息进行统一格式转换后传递给所述路由层;
所述路由层运行于工作线程,将接收到的所述消息推送给运行于UI线程的所述消费层。
2.如权利要求1所述的方法,其特征在于,在所述接收层接收服务器发送的分别来自不同平台的消息之前,还包括:所述接收层与所述服务器建立长连接通信。
3.如权利要求2所述的方法,其特征在于,所述接收层接收服务器发送的分别来自不同平台的消息,包括:当所述服务器与所述接收层的长连接通信处于连接状态时,所述消息直接由所述服务器通过socket通信机制传递至所述接收层;
当所述服务器与所述接收层的长连接通信处于断开状态时,所述消息由所述服务器转发至系统消息接收服务代为托管,待所述接收层所在进程被激活后,系统服务再将所述消息转发给所述接收层。
4.如权利要求1所述的方法,其特征在于,所述接收层将接收到的所述消息与所述交换层分别以两个不同的线程运行于同一进程中将所述消息传递给所述交换层,包括:所述接收层将接收到的所述消息包裹在服务意图中,启动服务时将意图传递给所述交换层;
所述交换层接收所述意图后发送广播给所述接收层,反馈所述消息是否交换成功的信息;
所述接收层接收到所述交换层的反馈成功的信息后,随机开始传递下一条消息。
5.如权利要求1所述的方法,其特征在于,所述接收层接收到所述交换层的反馈成功的信息后,随机开始传递下一条消息,包括:所述消息的传递以队列形式逐个进行。
6.如权利要求1所述的方法,其特征在于,所述交换层对所述消息进行统一格式转换后传递给所述路由层,包括:所述交换层对所述消息按照UMT标准规范进行统一格式的消息转换后传递给所述路由层。
7.如权利要求1所述的方法,其特征在于,所述路由层运行于工作线程,将接收到的所述消息推送给运行于UI线程的所述消费层,包括:所述路由层将接收到的所述消息存储到数据库中,并生成一个唯一的查询句柄;
所述路由层将所述查询句柄封进消息通知内,待所述消息通知被激活后随机发送广播,所述广播将携带所述查询句柄发送出去,等待所述消费层接收广播并读取广播中的查询句柄;
所述消费层读取所述查询句柄后根据所述查询句柄进入数据库查询对应的消息数据,根据所述消息数据创建动作意图进行页面切换或消息展示。
8.一种分层状态机实现消息推送的装置,其特征在于,所述分层状态机包括接收层、交换层、路由层和消费层,应用于安卓终端,包括:第一接收模块,用于所述接收层接收服务器发送的分别来自不同平台的消息;
第一交换模块,用于所述接收层将接收到的所述消息与所述交换层分别以两个不同的线程运行于同一进程中将所述消息传递给所述交换层;
第一转换模块,用于所述交换层对所述消息进行统一格式转换后传递给所述路由层;
第一推送模块,用于所述路由层运行于工作线程,将接收到的所述消息推送给运行于UI线程的所述消费层。
9.如权利要求8所述的装置,其特征在于,所述第一推送模块,包括:第一存储模块,用于所述路由层将接收到的所述消息存储到数据库中,并生成一个唯一的查询句柄;
第一封装模块,用于所述路由层将所述查询句柄封进消息通知内,待所述消息通知被激活后随机发送广播,所述广播将携带所述查询句柄发送出去,等待所述消费层接收广播并读取广播中的查询句柄;
第一查询模块,用于所述消费层读取所述查询句柄后根据所述查询句柄进入数据库查询对应的消息数据,根据所述消息数据创建动作意图进行页面切换或消息展示。
10.一种电子设备,其特征在于,包括处理器和存储器:所述存储器用于存储执行权利要求1至7任一项所述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。