为什么 SharedPreferences 访问时间会在 Internet 可用时增加? - Android
Why SharedPreferences access time increases when Internet available? - Android
这是我正在尝试做的事情:
在 onCreate 中,我从 sharedpreferences 获取数据并显示在列表中(为此我使用异步任务)。这是离线工作,不需要网络。那么发生了什么:
- Internet On- 在大约 1 秒内从共享首选项中获取字符串。
- Internet Off(已关闭)- 从 sharedpreferences 中获取字符串
大约几毫秒(几乎没有时间)
- 互联网开启-(开启
再次) - 从 sharedpreferences 中获取字符串需要 1-3 秒
在某些设备(中文)上大约需要 1-30 秒。
我试图只获取一个字符串。有人遇到过类似情况吗?
AsyncTask
从共享线程池执行。它们将按顺序执行(有时,在不同的平台上)。
SharedPreferences
在设备上,因此 AsyncTask
不是必需的。将对它的调用从后台线程中取出并返回到 UI 线程,你应该没问题。
AsyncTask
应该用于您预计将花费大量时间执行的任务 - 因此您 运行 离开了 UI 线程。
换句话说,从设备上的存储中获取数据不应该以这种方式完成。
这是我正在尝试做的事情:
在 onCreate 中,我从 sharedpreferences 获取数据并显示在列表中(为此我使用异步任务)。这是离线工作,不需要网络。那么发生了什么:
- Internet On- 在大约 1 秒内从共享首选项中获取字符串。
- Internet Off(已关闭)- 从 sharedpreferences 中获取字符串 大约几毫秒(几乎没有时间)
- 互联网开启-(开启 再次) - 从 sharedpreferences 中获取字符串需要 1-3 秒 在某些设备(中文)上大约需要 1-30 秒。
我试图只获取一个字符串。有人遇到过类似情况吗?
AsyncTask
从共享线程池执行。它们将按顺序执行(有时,在不同的平台上)。
SharedPreferences
在设备上,因此 AsyncTask
不是必需的。将对它的调用从后台线程中取出并返回到 UI 线程,你应该没问题。
AsyncTask
应该用于您预计将花费大量时间执行的任务 - 因此您 运行 离开了 UI 线程。
换句话说,从设备上的存储中获取数据不应该以这种方式完成。