解决方案 »

  1.   

    android的xmpp代码实现在那里啊? louzhu
      

  2.   


    http://blog.csdn.net/way_ping_li/article/details/17403929
      

  3.   

    这个解决方法有很多。我只是个人随便想了想,如果有疏漏请更正
    1、聊天记录本地数据库和服务器数据库一定都要有。通过字段区分用户就可以。
    2、切换用户仅仅只是再初始化一份这个新用户的好友、近天聊天记录等等,这个过程没啥可麻烦的。一个数据库完全可以胜任。
    3、获取用户列表有很多种方法,很惭愧没有用过lz所谓的openfire方法。而且像获取好友列表等这种无时效性的请求,完全可以用单次请求解决。
      

  4.   

    openfire 只是一个交互式服务器,数据你可以去请求,但是不一定会是新的,本地的记录可以自己写一个数据库,用不通的id来标识不通的好友,qq就是这么做的。
      

  5.   


    http://blog.csdn.net/way_ping_li/article/details/17403929  
      

  6.   


    我想到两种方式,第一种是直接从服务器去获取。这样的话每次登陆都要去获取好友列表。
    第二种是在数据表中添加字段,标识用户.   由于首次登陆的时候是数据库表中没有值。    所以要添加一个xml文件标识这个用户的好友是否已经在数据库中。     如果在的话就不用从数据库中获取,如果不在,就从网络获取,然后插入到数据库中。
    不知道你推荐哪种?
      

  7.   


    我想到两种方式,第一种是直接从服务器去获取。这样的话每次登陆都要去获取好友列表。
    第二种是在数据表中添加字段,标识用户.   由于首次登陆的时候是数据库表中没有值。    所以要添加一个xml文件标识这个用户的好友是否已经在数据库中。     如果在的话就不用从数据库中获取,如果不在,就从网络获取,然后插入到数据库中。
    不知道你推荐哪种?这两种相较而言我肯定推荐后者,但是后者还是不健全。当你切换用户的时候,其实成熟一点的应该会为每个用户的好友列表维护版本号。通过版本来区分你这次切换到A用户,你本地的好友列表和服务器上的是否一致。这个版本单独用一张表来维护便可。这样就免去了你用xml记的麻烦。而且还能优化每次切换用户的初始化流量。因为一旦有版本,就可以确定切换用户到A之前的这段时间,A在服务端添加了几个好友,删除了几个好友。这样只需初始化这几个好友便可。
    lz目前的设计还是偏向于死板了,还有就是我想指出lz的一个设计思维的问题,做东西不能以纯实现结果而凑合的思想来做。要合理,而且健全。为了优化用户体验和节省资源,一些必要的工作量增加还是非常必要的。