手机端解决被迫下线的方案

手机端被迫下线实现方案

方案一(现用,具体看嘀嗒应用源码):

后台:定义一个字段(useid),登陆时把这个字段返回给用户,

前台:BacrActivity里定义一个线程,每个十秒请求一次,请求到返回的数值跟本地比较,不一样是直接跳到登陆界面,从而实现异地登录被迫下线功能.

注意事项:第一次不匹配,被迫下线后前台已存的页面要清空,应用到activity管理

优点:实现简单,后台修改简单,前台只需一个线程就ok

缺点:每十秒请求一次数据,当用户群小时还行,当用户群多时,服务器压力大.同时每十秒刷新也给用户带来了不必要的流量浪费.

应用场景:应用要求不太严格,用户量少的客户端.

 

 

方案二利用广播接收器,A用户登陆一个ID1,B用户再登陆ID1,利用推送消息机制,服务器给A发一个消息,A接收到广播后,执行下线操作.

具体实现过程:(利用到推送服务)

后台当一个ID已经登录,再次登录时,通过服务器向第一个登录的用户发送消息,

前台:集成第三方推送(百度.信鸽,极光),通过自定义广播接收器,首先把本个应用推送默认为不可设置且为默认接收,当接受广播消息进行验证字段或标签来执行是否下线,如果是直接提示用户”该账号应经在其他地方登陆,请重新登陆!


注意事项:清楚推送服务的类型,避免造成不必要的麻烦.前台应用自定义广播接收器,且设置为不可屏蔽.被迫下线及时清空Activity.

缺点:因为不同的第三方推送有不同的服务器类型,一种是用户关闭推送消息,是关闭服务器,不在推送消息,一种是关闭后只是不在提示,但依据能接收,所以用第三方推送时要了解清楚.一旦屏蔽消息无法接收后,就不能实现被迫下线功能.

优点:对服务器压力小,对用户来说,减少请求次数,减少不必要的流量和电量浪费.

应用场景:使用人数多,需要推送机制服务的客户端

 

阅读更多

没有更多推荐了,返回首页