在聊天应用中的朋友列表活动之后打开聊天活动的最佳方法

时间:2015-08-29 16:15:13

标签: android android-activity chat

假设我正在制作聊天应用程序。

我有一个活动FriendListActivity(显示好友列表) 此活动还有一个Socket,用于侦听来自服务器的每条消息。

每当我点击ChatActivity内的朋友时,我都会调用FriendListActivity

我的问题:

  1. 当我从FriendListActivity调用ChatActivity时,angle属性会发生什么?他们死了吗?
  2. 我应该如何将这些活动放在一起工作,而且属性不会消亡?

1 个答案:

答案 0 :(得分:2)

我假设每当我点击FriendListActivity中的朋友时,就会调用它。你的意思是你将创建一个意图并开始新的活动,ChatActivity。如果这是您计划进行的操作,那么您的第一个问题的答案是否定的 - 在该Activity的类(FriendListActivity)中维护FriendListActivity属性(以及任何状态信息)。接下来发生的事情是ChatActivity现在变成了顶级'活动并呈现给用户,而FriendListActivity将在后台运行。

有关如何开始新活动并在它们之间传递信息的详细说明,请参阅http://developer.android.com/training/basics/firstapp/starting-activity.html

通常,对于聊天应用程序,您将创建一个处理传入消息的线程(通常通过侦听与服务器关联的套接字)。此线程将阻塞套接字读取操作(确切的函数名称/ API将取决于您的特定实现)并等待服务器发送数据。当在套接字上收到数据时,您的线程会将该数据放入某种队列(如“未读消息队列”)或调用主应用程序中的函数来处理新消息。请记住,UI只能由应用程序的主线程更新,因此您需要一种方法将信息从Socket交换到UI处理程序,以便更新TextView对象以显示给用户的消息。

要让Android方式在线程之间传递信息,请查看https://developer.android.com/training/multiple-threads/communicate-ui.html

如果您有任何特定的示例/代码要分享您遇到问题,请更新您的问题,我们可以尝试提供更具体的帮助。