devaige / DatePicker

Useful and powerful date picker for android
Apache License 2.0
1.86k stars 414 forks source link

使用时该第三方选择时间控件,遇到不能刷新页面问题 #64

Open INX0769 opened 7 years ago

INX0769 commented 7 years ago

经过简单阅读源码,发现不能刷新页面的根本原因是DPCMannager中用了大量静态集合来保存缓存日期对象(DATE_CACHE),我遇到的场景就是今日日期未更新,简单来说,只要清空缓存就可以,由于我是使用jar包的形式来导入的,所以我用反射来清缓存(如果用maven的,也应该用反射): try { DPCManager instance = DPCManager.getInstance(); Field DATE_CACHEFeild = DPCManager.class.getDeclaredField("DATE_CACHE"); DATE_CACHEFeild.setAccessible(true); HashMap DATE_CACHE = (HashMap) DATE_CACHEFeild.get(instance); DATE_CACHE.clear(); } catch (Exception e) { e.printStackTrace(); } 假如是用依赖工程:直接在DPCMannager暴露一个方法清理缓存,就好了。 最后留言一句:过分利用单例,很容易出问题,最起码暴露一个清除方法方便复用。