制作一个Im应用,在与对方交流时不发送对方的消息通知,离开与对方交流的activity时发送消息通知。请教各位大神这个要怎么实现
光阴似箭催人老,日月如移越少年。
有新的聊天消息,服务器统一推送过来。客户端判断,如果当前正在与这个人聊天,就显示在对话框里,否则生成一个通知显示到通知区域。
个人理解思路:可以用一个Service统一管理Socket消息接收,根据当前页面状态判断消息的推送位置,若在聊天页面推送消息至聊天页面,否则通知到通知栏
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.cancel(NEW_MESSAGE_NOTIFICATION_ID);
这个NEW_MESSAGE_NOTIFICATION_ID是在发送通知的时候添加的
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(NEW_MESSAGE_NOTIFICATION_ID, builder.build());
这个应该是你对于软件整体设计的问题啦,我之前做个一个Android的IM软件,实现很简单,就是在Application里面维护一个CurrentChatUser,存当前处在的聊天界面对应的用户id神马的,然后你在进入这个Activity(如果你是聊天界面是Activity的话,Fragment神马的都一样)时候,在onResume中把你当前聊天的人的用户id保存到Application中,出去的时候再在onDestroy中删掉,这样你在收到新消息的时候判断下你收到的消息是不是来自这个人的,然后决定是否通知,是的话就不通知,直接在聊天界面刷出来,不是的话就通知用户有新消息。
在聊天页面的话就把服务停掉 发送到聊天页面
有新的聊天消息,服务器统一推送过来。客户端判断,如果当前正在与这个人聊天,就显示在对话框里,否则生成一个通知显示到通知区域。
个人理解思路:
可以用一个Service统一管理Socket消息接收,根据当前页面状态判断消息的推送位置,若在聊天页面推送消息至聊天页面,否则通知到通知栏
这个NEW_MESSAGE_NOTIFICATION_ID是在发送通知的时候添加的
这个应该是你对于软件整体设计的问题啦,我之前做个一个Android的IM软件,实现很简单,就是在Application里面维护一个CurrentChatUser,存当前处在的聊天界面对应的用户id神马的,然后你在进入这个Activity(如果你是聊天界面是Activity的话,Fragment神马的都一样)时候,在onResume中把你当前聊天的人的用户id保存到Application中,出去的时候再在onDestroy中删掉,这样你在收到新消息的时候判断下你收到的消息是不是来自这个人的,然后决定是否通知,是的话就不通知,直接在聊天界面刷出来,不是的话就通知用户有新消息。
在聊天页面的话就把服务停掉 发送到聊天页面