这是我正在尝试做的事情:

在onCreate中,我从sharedpreferences中获取数据并显示在列表中(我为此使用了异步任务)。这是脱机工作,不需要网络。那么发生了什么:


Internet On-在大约1秒钟内从sharedpreferences中提取字符串。
互联网关闭(关闭)-从共享首选项中获取字符串
大约几毫秒(几乎没有时间)
互联网开启-(已开启
再次)-从sharedpreferences中获取字符串需要1-3秒
在某些设备(中文)上大约需要1到30秒。


我试图只获取一个字符串。有人面对过类似的人吗?

最佳答案

AsyncTask从共享线程池执行。它们将按顺序执行(有时在不同的平台上)。

SharedPreferences在设备上,因此不需要AsyncTask。将调用从后台线程中移出,再返回到UI线程,就可以了。

AsyncTask应该用于执行您期望花费大量时间才能执行的任务-因此您需要使用UI线程。

换句话说,不应以这种方式从设备上的存储中获取数据。

关于android - Internet可用时,为什么SharedPreferences访问时间会增加? -安卓,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28315647/

10-14 17:28