14.极光推送

极光推送 bass云端服务器:可以数据储存、消息推送、文件服务、api分析、应用统计。有bomb,atom原子云,百度frontia,华为power app等 所有需要客户端被动接收信息的功能模块,都可以用推送实现

张三调服务器接口,服务器只是存数据,它调推送的接口,推送去找妹子

有了最新数据,不需要全部刷新,直接用推送推送过去

 推送原理  - xmpp 是一种基于TCP/IP的协议, 这种协议更适合消息发送 - socket 套接字, 发送和接收网络请求 - 长连接 keep-alive, 服务器基于长连接找到设备,发送消息 - 心跳包 , 客户端会定时(30秒一次)向服务器发送一段极短的数据,作为心跳包, 服务器定时收到心跳,证明客户端或者,才会发消息.否则将消息保存起来,等客户端活了之后(重新连接),重新发送. > 客户端轮询(客户端定时主动拉取数据), 浪费流量, 浪费性能 > 谷歌推送服务(不能用,被墙了)

1.需要自定义application

  1. public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); System.out.println("应用创建啦...."); JPushInterface.setDebugMode(true); JPushInterface.init(this); } public void doSomething() { System.out.println("do something..."); } }

2.在mainactivity中初始化

  1. public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyApplication application = (MyApplication) getApplication(); application.doSomething(); }

3.自定义广播

  1. public class PushReceiver extends BroadcastReceiver { private static final String TAG = "PushReceiver"; @Override public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); Log.d(TAG, "onReceive - " + intent.getAction()); if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) { } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent .getAction())) { System.out.println("收到了自定义消息。消息内容是:" + bundle.getString(JPushInterface.EXTRA_MESSAGE)); // 自定义消息不会展示在通知栏,完全要开发者写代码去处理 } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent .getAction())) { System.out.println("收到了通知"); // 在这里可以做些统计,或者做些其他工作 } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent .getAction())) { System.out.println("用户点击打开了通知"); // 在这里可以自己写代码去定义用户点击后的行为 String extra = bundle.getString(JPushInterface.EXTRA_EXTRA); System.out.println("附加信息:" + extra); try { JSONObject jo = new JSONObject(extra); String url = jo.getString("url"); System.out.println("url:" + url); // 跳浏览器加载网页 } catch (JSONException e) { e.printStackTrace(); } } } }

4.在清单文件中注册,并写权限,看文档

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

深入剖析 - Oracle SCN机制详细解读

SCN可以说是Oracle中一个很基础的部分,但同时它也是一个很重要的。它是系统中维持数据的一致性和顺序恢复的重要标志,是数据库非常重要的一种数据结构。 SCN...

45810
来自专栏做全栈攻城狮

安卓开发基础教程-Android多界面应用程序开发

本套教程主要讲解安卓开发的相关知识,从基础到精通。一方面可以巩固自己所得,另一方面可以帮助对安卓开发感兴趣的朋友。

1184
来自专栏郭霖

Android静默安装实现方案,仿360手机助手秒装和智能安装功能

之前有很多朋友都问过我,在Android系统中怎样才能实现静默安装呢?所谓的静默安装,就是不用弹出系统的安装界面,在不影响用户任何操作的情况下不知不觉地将程序装...

7269
来自专栏向治洪

仿360静默安装

之前有很多朋友都问过我,在Android系统中怎样才能实现静默安装呢?所谓的静默安装,就是不用弹出系统的安装界面,在不影响用户任何操作的情况下不知不觉地将程序装...

4298
来自专栏Golang语言社区

mysql_stmt_prepare failed! error(1461)Can't create more than

1461错误, mysql_stmt_prepare failed! 今天现场咨询我们问如何处理1461错误。 mysql_stmt_prepare faile...

5658
来自专栏分享达人秀

ListView列表数据源——Adapter

在上一节一起了解了ListView的简单使用,那么本节继续来学习与ListView有着千丝万缕的Adapter。 一、了解MVC模式 在开始学习...

38210
来自专栏Android研究院

Android组件化专题 - 路由框架进阶模块间的业务通信

上一篇文章,讲解了路由框架实现的原理,并实现了基本的路由框架 页面路由的跳转 Android组件化专题 - 路由框架原理。

1362
来自专栏刘望舒

Android架构(一)MVP全解析

前言 关于架构的文章,博主很早就想写了,虽说最近比较流行MVVM,但是MVP以及MVC也没有过时之说,最主要还是要根据业务来选择合适的架构。当然现在写MVP的文...

20810
来自专栏向治洪

Android 之dragger使用

1、依赖的注入和配置独立于组件之外,注入的对象在一个独立、不耦合的地方初始化,这样在改变注入对象时,我们只需要修改对象的实现方法,而不用大改代码库。 2、依赖可...

19810
来自专栏向治洪

百度地图开发1

最近自己想研究下地图,本来想研究google Map,但是申请API key比较坑爹,于是从百度地图入手,其实他们的用法都差不多,本篇文章就带领大家在自己的A...

2957

扫码关注云+社区

领取腾讯云代金券