当在Android系统中切换语言时,会带来一个有趣的bug:SimpleDateFormat在处理“z”时区字段时会花费很长的时间。如果你在一个ListView里多次调用这个方法,就会发现这个ListView在滚动时很不流畅。控制台相关输出如下所示:
其他开发者的反馈可见:
http://stackoverflow.com/questions/3905545/android-load-timezone-too-long-loaded-time-zone-names-for-en-us
http://stackoverflow.com/questions/2853058/weird-parsing-date-string-error-in-android-2-0-emulator
这是因为时区字段在Android系统中是被设计为延迟初始化的,只有在第一次使用到时才会去获取,并保存在缓存中,随后都会从这个缓存中去获取。但是根据之前SimpleDateFormat API的设计,没有方法来达到这个目的。在Android官方issues里也反复提到了这个问题,从2009年被发现到现在,都始终没有解决。参见:http://code.google.com/p/android/issues/detail?id=3147和http://code.google.com/p/android/issues/detail?id=16126。
在期待Android系统修复这个问题或者越来越快的系统硬件支持之外,基本很难处理这个系统原生的bug,但是我们可以通过一个简单的办法来改进这个问题。核心的思路就是缓存时区带来的偏移值。我们只需要在第一次加载时获取这个偏移值并存储,然后在以后每一次根据这个偏移值算出真实的时间值,代码如下:
通过这种简单的方式我们可以暂时解决Android系统的疑难bug,带来了一种解决问题的不同思路。

分享到:
相关推荐
c# 链环 问题 巧解结构和函数的应用 (2,3)与(3,2)类似的环节的个数并输出
第25讲巧解小数与分数互化问题.pdf
若达到90-100度,可能预示着CPU存在过热问题,需要采取措施降低温度。 2. **清洁和涂抹硅脂**: 清理机箱内部的灰尘,特别是CPU和散热风扇上的灰尘,能有效改善散热。同时,CPU和散热器之间可能因为时间推移而失去...
标题中的“一键巧解CPU占用率过高难题”指的是如何快速有效地解决计算机处理器(CPU)负载过大,导致系统性能下降的问题。CPU占用率过高通常会使计算机运行缓慢,甚至可能导致系统崩溃。描述中的“专业指导”表明这...
《奥林匹克竞赛千题巧解·初中一年级数学》是一本专门针对初中一年级学生的数学竞赛辅导教材。这本书旨在帮助学生深入理解和掌握奥数中的各种难题,通过巧妙的解题方法提升他们的数学思维能力和问题解决技巧。 在...
在XP系统中,如果之前对磁盘进行过特殊的操作,比如使用Format Fdisk修改分区,可能会导致在升级到Win8后无法正常重命名磁盘分区。这种情况下,可以通过修改Windows注册表来解决分区重命名的问题。 首先,我们需要...
《用数学模型巧解排列组合问题》 排列组合问题是数学中的一个重要领域,它涉及到如何有效计算事物的不同排列或组合方式。解决这类问题的关键在于理解并运用分类计数和分步计数这两个基本原理。这两者提供了处理复杂...
因此,我将根据标题“行测数量关系49个常见问题公式法巧解.pdf”和描述“行测数量关系49个常见问题公式法巧解.pdf”来构建对应的知识点。 行测(行政职业能力测验)是中国公务员考试的一部分,主要测试考生的数量...
在当今社会,数学作为一门基础学科,在培养学生的逻辑思维、分析问题和解决问题的能力方面扮演着重要角色。特别是对于有志于参加奥林匹克数学竞赛的学生来说,掌握数学竞赛的知识和解题技巧是提高自身竞争力的关键。...
公务员考试行测巧解青蛙跳井问题.pdf 在公务员考试的行测考试中,经常会考察青蛙跳井问题,这类问题通常称为正负效率交替的合作问题。本文中,我们将通过详细讲解典型例题,为考生总结出解题技巧。 青蛙跳井问题的...
因为在这种模式下,Windows不会加载可能引发问题的特定驱动。用户可以安全地卸载错误的驱动,然后使用驱动程序还原功能恢复到之前的状态,避免了在图形用户界面(GUI)下可能导致的系统崩溃。 除了上述应用,...
初中二年级的学生正处于青春发展的关键时期,这一时期的数学学习不仅关系到基础知识的掌握,更是培养逻辑思维、创新能力和解决实际问题能力的重要阶段。《奥林匹克竞赛千题巧解·初中二年级数学》应运而生,成为引导...
### 齐次平移巧解一类圆锥曲线问题 #### 概述 本文主要探讨了如何利用坐标平移的方法简化解决一类特定的圆锥曲线问题。这种方法特别适用于那些涉及定点、定值的问题,其中直线斜率是常数的情况。通过对坐标系进行...
该书全面介绍了向量在代数、三角函数、平面几何、立体几何、解析几何方面的应用,重点介绍了在立体几何和解析几何领域的应用。内容独特、题型全面。
《四年级奥数巧解追与问题》 追与问题是奥数中常见的一类问题,主要涉及两个物体在同向移动时,速度快的物体追赶速度慢的物体的情况。这类问题的关键在于理解速度差的概念,以及如何利用速度差来计算追及时间与追及...
巧解阅读理解中关于作者意图、观点、态度的问题.doc
在编程领域,尤其是在解决算法和数据结构的问题时,位运算经常被用来实现高效且简洁的解决方案。本题目的核心是利用位运算来寻找一个数组中出现次数为奇数的元素,这里具体涉及到的问题是如何巧妙地利用异或操作...
追及问题通常涉及两个或更多的对象以不同的速度朝相同方向移动,较快的对象试图追上较慢的对象。这个问题的关键在于理解速度差和追及时间的关系。 在四年级奥数的教学中,追及问题是一个重要的知识点,它帮助学生...
《数学巧学巧解大全》是一份详尽的高中数学学习资源,涵盖了广泛的方法和思想,旨在帮助学生高效地理解和解决数学问题。这份文档主要分为三个部分:具体解题方法、数学思想方法以及数学逻辑方法。 第一部分着重于...
在排列组合问题中,处理相同元素的排列是一个挑战性较高的课题。在常规的高中数学教育中,主要关注的是不同元素的排列,而相同元素的排列则更多地出现在数学竞赛和部分高考模拟试题中。教师在教学中往往缺乏系统性的...