2009-12-31 78 views
0

我有一个奇怪的问题。正如我在以前的帖子中所问,我的应用程序中有很多来自.NET的数据。问题是在那里有很多文字和图像,所以虽然我可以让用户等待,但是他点击了一个列表项,但是我不想让他等待他点击后退按钮。Android内容保存

从某种意义上说,我不想重新下载所有的数据;数据1ce应该保持下载。

哪1是正确的方法?

使用存储所有数据的一类特殊的...并使用变量,每次我回去,

2.有没有什么具体的保存实例方法将这些数据保存在类 本身中...如果是这样,那么请通知我如何在单击返回时调用保存的实例活动 。

回答

0

“用户点击后退按钮”我知道上一个活动显示并返回到堆栈顶部(请参阅activity lifecycle)。

这意味着此活动不会再次创建,但会继续(除非它被核心杀死,因为其他应用程序需要内存),所以它的字段和属性保留其值。 因此,如果您将数据存储在某些活动字段中,则可能可以检索其值并在不重新下载的情况下显示它们。

当然,您必须在访问它们之前测试这些字段,以避免在第一次启动活动时出现NPE。

0

当您启动或返回时,您不应该依赖已存在的任何Activity

退房此有关缓存已经下载的数据前面的问题:
What is the ideal place to cache images?

你不应该在UI任何停顿反正当用户输入一个Activity;你应该在后台线程上做所有的下载并向用户显示某种进度指示器。如果你不这样做,并且UI线程被慢速下载(约15秒)阻塞,用户将会看到一个“应用程序未响应”对话框,并要求杀死你的应用程序或继续等待。不好。