我可以在 SharedPreferences 中存储任何内容吗?

Can I store anything in SharedPreferences?

我正在创建一个文件资源管理器来同步我 phone 上的 ftp 目录,我希望在每次同步时我都能知道哪些文件是新的,即使在关闭我的应用程序后也是如此并在下一个 session 继续。我想用我所有的新文件保存一个数组并在适配器中比较它以了解它是否已经打开。但是为此我需要将这个数组存储在某个地方,我可以将它存储在 SharedPreferences 中吗?这是最好的方法吗?

谢谢

不可以,您只能存储字符串的布尔值、整数、浮点数、长整数、字符串和集合(不是数组、集合,因此没有重复项)。如果您需要更多,则需要使用您自己的序列化方法。

共享首选项文档:https://developer.android.com/reference/android/content/SharedPreferences

您唯一需要保存的两件事是最后两次同步的 date-times。

最后的 date-time 个新文件介于它们之间。

您可以将这两个值保存在共享首选项中。

重要的是您是否使文件时间保持同步。

当然,您可以将字符串数组保存到共享首选项中。只需连接所有字符串(如 .csv 行)并保存此行。

进一步:如果您不保留文件时间,那么您只需要记住最后一个 date-time 就可以知道哪些文件是新的。