Android 推送 - Activity 跳转控制处理
本文章转载于:https://blog.csdn.net/BlogRecord/article/details/54834706
一,Android 点击推送逻辑处理,以及页面跳转判断等
// 该项目主要实现此需求:
// 收到推送, 点击推送消息处理
// 1. 如果 应用已经打开, 这直接做处理, 如跳转页面, 打开链接等功能
// 2. 如果 应用没有开启, 则默认先开启应用 (如果存在引导页面, 则显示引导页面), 然后进入首页后, 再做对应的处理(跳转页面, 打开链接等)
// 同微信一样
// 如果微信没有打开(后台被销毁), 有人发送消息过来, 点击通知栏, 则默认是打开微信, 显示欢迎页, 接着进入对应的群聊、或者私聊页面, 返回键则返回到消息列表页面
// 如果微信已打开, 则不会再次启动微信, 直接进入对应的页面
// == 效果 ==
// 收到推送后, 并且点击推送
// 没开启应用:
// 打开应用 -> 默认显示 Launcher 页面( WelcomeActivity ) -> 接着进入 MainActivity -> 触发onResume方法, 判断成功后, 跳转到对应的 PushXxxActivity
// 已经开启应用
// 默认停留在 MainActivity 页面, 触发onResume方法, 判断成功后, 跳转到对应的 PushXxxActivity
二,
主要功能实现页面
BaseApplication => onCreate 方法
BaseActivity => onResume 方法
PushHanderActivity
// == 实现思路 ==
// 默认全部推送, 都跳转到统一一个页面 PushHanderActivity, 该页面不显示任何UI, 只是单独中转处理
// 接着在 PushHanderActivity 中, 保存传递过来的推送消息、推送类型到 SharedPreferences (SP) 中, 并且默认跳转到应用 Launcher 页面 (startActivity(Launcher.class);)
// 然后在全部 Activity 中的 onResume 中调用 PushHanderActivity.checkPush 方法, 主要就是通过获取 SP 存储的值, 判断是否存在推送消息
// 不存在推送消息, 则不处理
// 存在则处理, 并通过接口进行回调通知, => 会先通过 接口 isHandlerPush 方法判断是否处理推送, 如果处理, 并且存在数据则会调用 onPushHandler 接口方法
// isHandlerPush 可以特殊处理, 正常传入的参数为 class getSimpleName 名, 容易判断是否不处理某些类
// == 使用步骤 ==
// 需要三步
// 1.首先在 Application 中 调用 PushHanderActivity.setLauncherClass, 并且设置 Launcher 页面.class
// 2.PushHanderActivity.setPushHandler 实现IPushHandler接口, 并且进行编写逻辑判断
// 3.在整个项目 Activity基类 的onResume方法中, 调用 PushHanderActivity.checkPush(activity, value); // 正常 PushHanderActivity.checkPush(this, this.getClass().getSimpleName());
// == 方法功能介绍 ==
// PushHanderActivity.checkPush 该方法功能, 主要是判断是否存在推送数据, 以及对推送数据特殊处理
// 需要在onResume中处理, 是因为如果应用已经打开, 并且停留在某个页面, 点击推送会再次触发onResume, 这个时候进行判断是否处理推送
// ====
// 而 isHandlerPush 方法, 则主要是判断是否在该页面处理推送消息, 正常是忽略欢迎、引导页面
// 只有正常页面才进行处理, 防止影响到需要强制显示的页面(如欢迎页面, 会显示一定延迟时间后, 才处理推送)
// onPushHandler 方法是自己逻辑处理,点击推送后做什么操作
Android 推送 - Activity 跳转控制处理相关推荐
- 华为手机点击android棒棒,Android 推送点击跳转与华为推送神坑
实现Android推送功能,选择了接入华为推送和小米推送,结果步入了华为推送的一个神坑
- 个推无法获取个推id_最新个推Android 推送 SDK Maven 集成
概述 公司准备采用个推作为第三方推送平台,我作为客户端的头号小鸟,掐指一算已经毕业 0.1 年了,Leader 准备把这个简单而又独立的功能点交给我来处理,我紧张兮兮的打开官网集成文档 学习了起来.其 ...
- Android推送的群魔乱舞
前言 国内的Android推送就是个悲剧 国内Android缺少Google的生态,如Google的Paly Store,Google Mobile Services(GMS)等,导致衍生出很多畸形的 ...
- Android推送集成方案总结
Android推送集成方案总结 刚做完推送集成方案,记录下坑. 这里记录的特性和使用时针对写blog时采用的sdk的,具体使用流程和限制还请参考官方给出的sdk. 1.推送规则 小米手机用小米推送: ...
- Android推送、智能心跳解决方案、手机休眠对心跳的影响
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51611625 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...
- Android推送 智能心跳解决方案 手机休眠对心跳的影响
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51611625 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一 ...
- Android推送服务的几种实现方式
现实生活中, 推送服务就像订杂志一样, 只要留下你的地址, 杂志就能如期送到你手里, 可以认为每个人都有唯一的一个地址, 但在目前的网络上, 这是办不到的, 因为不是每个人都有一个唯一的地址, 服务器 ...
- android极光静默推送,Android 推送 整合小米、个推、jpush
Android系统由google提供的推送的服务在国内并不能很好的运作,因此不能像iOS能提供统一管理的推送服务.Android端推送目前常用的都是第三方推送服务,也可以自己搭建推送服务器来实现, 为 ...
- 最新个推Android 推送 SDK Maven 集成
概述 公司准备采用个推作为第三方推送平台,我作为客户端的头号小鸟,掐指一算已经毕业 0.1 年了,Leader 准备把这个简单而又独立的功能点交给我来处理,我紧张兮兮的打开官网集成文档 学习了起来.其 ...
最新文章
- linux 网站架构的演变
- 最常用的10个Matlab快捷键,助你编程更高效
- php 补足字符串,php 数目字或者字符串补全
- c++ DirectShow播放任意格式的视频
- 《高级软件架构师讲义》学习笔记5
- docker build no such file or directory
- RT-Thread下的串口驱动程序分析
- Html TextArea 长度限制
- FMS Dev Guide学习笔记(SharedBall)
- 人眼定位python代码_使用dlib,OpenCV和Python进行人脸识别—人眼眨眼检测
- Delphi 取整函数round、trunc、ceil和floor
- Atitit. 图像处理jpg图片的压缩 清理垃圾图片 java版本
- pdg file的打开
- 先验 超验_关于先天、先验、经验和超验的理解
- python搭建轻服务,实现上传下载文件
- 远程桌面连接服务器显示内部错误,解决远程桌面连接出现了内部错误
- ue模糊查询_Daizyue的Power Query学习笔记-缓存
- 拼图游戏怎样切换代码html,HTML5技术之图像处理:一个滑动的拼图游戏-H5教程
- 软件工程方向硕士论文撰写指南
- 计算机网络物联网论文,物联网技术及其应用_计算机网络论文.doc