一、准备
1、
2、
①比较好用。其它的推送使用逻辑也是类似的。
②模仿。
3、
二、搭建极光推送环境
1、
2、拷贝文件到libs文件夹下,拷贝完成后需要编译一下,否则可能找不到.so文件和jar包
3、拷贝权限
4、拷贝配置
5、拷贝receiver。跳转的时候需要定义的receiver,因为极光会以广播的模式来通知自己的广播接收器,从而告诉我们收到了消息推送
6、
三、推送组件--JPushReceiver创建
1、初始化极光推送SDK
2、用来接收极光SDK推送给app的消息
3、使用自定义的receiver代替极光推送中的receiver
注:通过广播降低各个模块的耦合性
四、在应用启动时收到推送消息
1、跳转流程
2、
3、上图中黄色的目的界面
4、根据接收到的数据类型action进行处理
5、判断应用是否已经启动
6、应用已启动情况下,登录、未登录情况下需要跳转的界面
7、在登录界面获取推送消息
8、在推送成功界面进行跳转
注:
五、应用未启动时跳转流程
1、
2、思维导图
假设一次要启动上面四个activity,那就需要传入四个intent,通过startActivities调用的时候,并不会先创建A,再创建B,再创建C,再创建D,而是会先创建D ,当D Activity显示完以后,当用户点击返回键,会销毁D Activity,再创建C Activity,当C Activity被用户关闭后,再去创建B Activity,B Activity销毁的时候再去创建A Activity。
市面上的app,它在接收到我们的推送以后,如果应用还没启动,点击推送的时候,会直接跳转到推送展示界面,点击返回键,直接回到了主页,就是使用的startActivities()方法操作的
3、
这样会直接展示login登录activity,如果登录成功了会从login activity跳转到push message推送消息activity,当用户点击返回键销毁LoginActivity或者pushmessage activity的时候,才会显示主页面homeactivity。这样用户再浏览完消息推送界面的时候,不是直接退出应用程序,而是跳转到主界面
4、不需要推送的时候直接跳转到消息推送界面