假设我正在制作聊天应用程序。
我有一个活动FriendListActivity
(显示好友列表)
此活动还有一个Socket,用于侦听来自服务器的每条消息。
每当我点击ChatActivity
内的朋友时,我都会调用FriendListActivity
。
我的问题:
FriendListActivity
调用ChatActivity
时,angle
属性会发生什么?他们死了吗?答案 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。
如果您有任何特定的示例/代码要分享您遇到问题,请更新您的问题,我们可以尝试提供更具体的帮助。