似乎是一个熟悉的问题。但我无法得到完美的解决方案,因此提出了这个问题。
在我的应用程序中,我正在获取 30k 字符串的数据并将其存储在字符串数组中。由于从 Web 服务器获取这些数据需要花费大量时间,因此我在后台执行此操作并在 UI 线程中显示启动画面。
因此,这个字符串数组被创建并填充SplashActivity
并制作Public
Static
。我在下一个名为 ListViewActivity 的活动中使用它,就像这样:
SplashActivity.myArrayOfStrings;
这里的问题是当我在ListViewActivity
和时i press Home button
,将其放置 3-5 分钟并尝试重新打开应用程序,它说ArrayIndexOutOfBoundsException
是因为 SplashActivity 中的 Array 项已被破坏,我试图在 ListViewActivity 中访问它的值。
所以我知道如何存储这些数据以在所有活动中使用它,只需 1 次获取。
我不想要共享首选项之类的东西,因为每天都会有 30k 个字符串发生变化。
我从未在我的应用程序中使用过 SQLite,但如果我在 SpalshActivity 中时将字符串存储在数据库中,我可以在所有其他活动中使用数据吗?我的意思是即使我的应用程序进入后台并在 5 分钟后重新打开,这些数据也会存在吗?
还是有更好更明显的解决方案?
谢谢你