百度云消息推送机制在即时通信聊天界面的信息处理,技巧篇。

转载请注明出处:http://blog.csdn.net/yianemail/article/details/47044019

百度云消息推送,消息在客户端的处理以及消息显示方式是基于通知栏消息提示。

但是这明显不是我们想要的效果,我们想要的是利用它实现聊天,即:在通信聊天界面如何实时更新推送的消息,以不断接受的消息实现聊天。

一:我们知道利用百度消息推送,要实现自己的PushMessageReceiver。 里边重要的是有三个方法,即:

public class BaiduPushReceiverextends PushMessageReceiver

1,

/**

* onBind :得到绑定请求的结果

*/

@Override

publicvoid onBind(Context context,int errorCode, String appid,

String userId, String channelId, String requestId) {}

2,

/**

*  onMessage :接受透传消息

*/

@Override

publicvoid onMessage(Context context, String message,

String customContentString) {}

3,

/**

* onNotificationArrived:消息在客户端以通知形式

*/

@Override

publicvoidonNotificationArrived(Context context, String title,

String description, String customContentString) {}

onBind:在该函数中可以得到绑定结果,即可以拿到userId以及channelId(Java后台也是基于这两个信息实现自己推送)

onMessage:在该函数是处理透传消息,何为透传,就是说你可以直接在该应用运行时接受消息,而不是以标题栏通知的形式显示。这也是我们实现的重点

onNotificationArrived:推送消息以通知的形式。

二:聊天界面是一个ListView,我们要做的就是在消息透传onMessage函数里边,判断当前应用是否正在启动,如果正在启动,就直接把接受到的消息更       新在聊天界面。(如果判断没有启动,再以标题栏通知的形式进行通知。)

判断应用是否正在启动:

	public static boolean isRunningApp(Context context, String packageName) {
           boolean isAppRunning = false;
	   ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
	   for (RunningTaskInfo info : am.getRunningTasks(100)) {
	   if (info.topActivity.getPackageName().equals(packageName) && info.baseActivity.getPackageName().equals(packageName)) {
				isAppRunning = true;
				break;
			}
		}
		return isAppRunning;
	}

每次收到消息后及时在聊天界面实现更新,这重要的一点,假如我们要跳转界面是MainActivity,则在mainfest.xml把MainActivity   启动模式设置为:

android:launchMode="singleTask"

跳转界面: 然后在聊天界面中的onResume函数进行聊天界面更新处理

	public void JumpActivity(Context context, String Msg) {
		Comment.Msg = Msg;
		Intent intent = new Intent();
		intent.setClass(context.getApplicationContext(), MainActivity.class);
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		context.getApplicationContext().startActivity(intent);

	}

三:利用java后台推送消息内容至固定客户端(按照文档,添加相应jar):

四:效果

运行java后台,发送消息内容"hello"给客户端:

运行java后台,发送消息内容"iam ok,are you?"给客户端:

这样就完成了即时通信聊天界面的实现效果。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-13 05:01:29

百度云消息推送机制在即时通信聊天界面的信息处理,技巧篇。的相关文章

Android消息推送机制

1.推送方式基础知识: 当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数据,比如<地震应急通>就需要及时获取服务器上最新的地震信息.要获取服务器 上不定时更新的信息一般来说有两种方法,第一种是客户端使用Pull(拉)的方式,隔一段时间就去服务器上获取信息,看是否有更新的信息出现.第二种就是 服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上.? 虽然Pull和Push两种方式都能实现获取服务器端更新信息的功能,但是明显来说Push is

Android与iOS系统的消息推送机制

相信大家在使用iPhone版微信的时候都会有这样的经历,微信已经处于关闭状态了(后台进程运行一段时间就被系统杀掉),这时候我们收到了一个消息提醒,打开微信应用,微信显示“连接中…”和“收取中…”,然后再次显示一次刚才系统推送给我的消息通知.对这个现象比较好奇,于是去知乎上查一下资料,发现知乎上的热心人还真多,看了大家的回答之后,总结如下: [之所以去知乎查看技术问题,因为我并非技术人员,而知乎上很多开发人员是会用通俗易懂的方式解释好技术问题的,因为里面有不少大牛.] 先介绍一下两个重要的消息推送

API 23之消息推送机制

作为一个菜鸟,每个星期写一篇随笔来记录这周所学是很有必要的: 1.gson解析json,重点在于构建json数据的实体类,不过现在android studio里有gson Formart这个快速构建实体类的工具了,所以比较容易上手. 2.thinkandroid框架中的联网请求,同步(SyncHttpClient),异步(AsyncHttpClient),但可能有点过时了,毕竟这个框架几年都没有更新维护了. 3.自定义空间及属性. 4.glide图片加载缓存,okhttp联网请求及其封装的类Ok

Android (Notification)消息推送机制

从网上查询资料学习Android消息推送机制,效果图如下: 1.首先是布局文件代码 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"

APP消息推送机制的实现(PUSH)

出于好奇,想了解一下消息推送机制,在网上搜索到了几篇文章,感觉还不错,粘贴下来,等真正用到的时候再仔细研究 以下两篇是关于ios的 1.http://blog.csdn.net/xyxjn/article/details/40898183 2.http://www.cnblogs.com/qq78292959/archive/2012/07/16/2593651.html 以下一篇是关于android的 3.http://www.cnblogs.com/wxishang1991/p/521940

iPhone消息推送机制实现与探讨

最近两天在研究ios的消息推送机制.研究这个东西,还是充满兴趣的. Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,是苹果的服务器. 上图可以分为三个阶段. 第一阶段:.net应用程序把要发送的消息.目的iPhone的标识打包,发给APNS. 第二阶段:APNS在

苹果apns消息推送机制

苹果apns消息推送机制[电薇:132乄8688乄4109][Q群780516296]声声叹!鲁能球迷被恒大踢服了 保住前三依旧是目标Space X发推秀宇航员进出臂 设计科幻美"力挺"被"断交"的台湾 马英九讽:无说服力深度|中日游泳PK中国差在哪?个别高手长期未突破日本防卫省敲定2019预算申请 总额5.2986万亿日-传软银决定不向电动汽车企业蔚来进行投资围堵P2P恶意逃废债 纳入征信"进行时"大连瓦房店市委书记被查 曾批落马前同僚教训深刻

iOS消息推送机制的实现

iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务器. 上图可以分为三个阶段: 第一阶段:应用程序把要发送的消息.目的iPhone的标识打包,发给APNS. 第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone. 第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设

【iOS】iOS消息推送机制的实现

iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务器. 上图可以分为三个阶段: 第一阶段:应用程序把要发送的消息.目的iPhone的标识打包,发给APNS. 第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone. 第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设