在另一个视图中快速显示数据

时间:2015-09-16 02:31:20

标签: android android-intent android-activity

以下是Twitter的应用程序的GIF,从帖子来回切换到不同的个人资料:

http://i.imgur.com/9uKadmx.gifv

根据我的理解,有两种方法可以将数据传递给视图。第一种方法是从上一个视图(IsOpen)传递它,第二种方法是在切换视图后从外部API获取数据。

我注意到在Twitter应用中,个人资料数据(如用户的描述和关注者/后续人员)根本没有时间加载。

这是否意味着Twitter传递来自帖子提要的用户数据(意味着他们请求提要中每个帖子的用户数据),而不是在视图切换到API后从API中提取数据?

换句话说,他们是使用putExtra()传递上一个视图中的数据,还是认为他们在切换视图后从他们的API请求数据?

PS 这不是 Twitter 如何做到这一点的问题,而是一个关于如何使用Twitter的例子一般传递数据的问题。

1 个答案:

答案 0 :(得分:0)

简短回答:不,这并不意味着什么。

答案很长:
他们可以(并且可能)使用某种缓存。例如,您可以让一个单独的对象在LruCache中保存配置文件,并将其ID作为键。当第一个活动从API加载数据时,它会将配置文件放入所述缓存中。然后,当用户导航到第二个活动时,唯一需要明确传递的是配置文件ID。第二个活动需要从缓存中查询此配置文件,因为它已经在内存中,所以它可以立即使用。因此,第二个活动的算法可能是这样的:

  1. 从意图附加内容中获取ID。
  2. 在内存中的LRU缓存中查找此ID的配置文件。
  3. 如果未找到,请对持久性缓存(SQLite)执行相同的操作。
  4. 如果仍未找到,请从服务器加载。