1.10Android 学习+进度之十-聊天处理

来源:互联网 发布:手机音量加大软件 编辑:程序博客网 时间:2024/06/06 17:12

终于把代码改成了消息队列的模式,并且测试一切ok。

接下去考虑聊天了。

先考虑最简单的情况,两个人都打开了各自的Activity,然后一方面发送消息,另一方能在对应的Activity接收到相关数据,并且显示。

第一步,用户A发消息,能在Activity上显示。用ListView实现的,实现步骤和主界面的差不多。显示了,但是呢,本来想做一下,想左边显示就左边显示,想右边显示就右边显然,还不是那么简单,作为附加功能就先不加了。但是可以先贴个做法http://blog.csdn.net/to_be_designer/article/details/48163775,效果还是不错的。

第二步,把这个消息发送到服务器上。并且在服务器debug抓信息的准确性。这个也没问题。

第三步就有点难了,因为我的接收线程是在clientThread里面的,在我开启另外的Activity后,他是否还在工作(应该是在的),那我数据怎么传递到新的Activity呢。

刚刚验证了,即使chat_activity活跃,client线程接收到数据,依旧会进入handler了,那么此时如果能讲信息发送到新的Activity就行了。

查了一些资料。。怎么扯到服务上去了。。我的问题和http://bbs.csdn.net/topics/392144352这个链接是一样的。

似乎OK了,采用了曲线救国的措施感觉,主线程Activity,开了个子线程控制socket,然后socket接收到数据后,通过handler传递给MainActivity(此时他可以修改根据数据更改UI)。此时又有一个Activity,socket通过application传递给了(相当于全局变量)Activity,此时,socket线程还在接收数据,而且要修改Activity的UI。主线程的Activity,在handler处理中,将这个消息广播,然后子Activity,例化一个广播类,然后广播类里面能接收数据,并且处理,此时广播类无法直接修改UI。继续通过handler的方式,把数据回传给Activity。我总感觉,自己蠢了。

其次这个的扩展性,我觉得还行。退出,新建一个Activity,依旧可以获得相应的效果。

我总觉得,靠一个handler,或者只靠广播,是不是也能处理这个事。

原创粉丝点击