在聊天应用的好友列表 activity 之后打开聊天 activity 的最佳方法

Best approach to open a chat activity after friendlist activity at chat app

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

我有一个 activity FriendListActivity(显示好友列表) 这个 activity 也有一个 Socket 监听来自服务器的每条消息。

我还有一个 ChatActivity,每当我点击 FriendListActivity 内的朋友时都会调用它。

我的问题:

  1. 当我从中调用 ChatActivity 时,FriendListActivity 属性会怎样?他们会死吗?
  2. 我应该如何放置这些活动以某种方式协同工作并且属性不会消失?

我假设 'called whenever I click at a friend within FriendListActivity' 你的意思是你将创建一个意图并开始新的 activity,聊天 Activity。如果这是你打算做的,那么你第一个问题的答案是否定的 - FriendListActivity 属性(和任何状态信息)在 Activity 的 class(FriendList Activity)。发生的事情是 ChatActivity 现在变成 'top-level' activity 并呈现给用户,而 FriendListActivity 将在后台 运行。

请参阅 http://developer.android.com/training/basics/firstapp/starting-activity.html 了解有关如何开始新活动和在活动之间交流信息的详细说明。

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

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

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