我的活动显示每次用户看到活动(onResume)时从服务器获取的数据,以便查看最新的数据。我正在缓存数据onPause,以便在获取新数据并用新数据替换缓存数据之前向用户显示先前的数据(因此他不会看到白页或加载消息)。问题是用户可以打开活动,看到一个数字,3秒后数字正在改变(因为新数据)。这是我能达到我需要的唯一方式吗?
这是生命周期:onResume - >从缓存中获取数据并显示它 - >转到服务器并获取新数据 - >替换活动中的数据 - > onPause - >缓存新数据。
答案 0 :(得分:0)
最佳用户界面练习是向用户显示正在加载数据而不是白屏。显示旧数据更糟糕,因为如果连接出错,用户就不会知道他正在使用过时的数据。
将ProgressBar
或一些有趣的动画(如Snapchat中)添加到您的活动布局中,并在加载完成后隐藏它。
其他解决方案是创建一个单独的对象,其中包含一个线程,该对象定期从服务器接收数据,例如每分钟,并将它们存储在此单例中。每次活动恢复时,只需调用单例实例即可从中获取新数据。