【安卓-SharedPreferences】为什么“第一次从sp中获取值的时候,有可能阻塞主线程”?(理论)
【场景】
在主线程第一次读值,并且文件比较大的时候
【原理】
第一次读的时候,主线程会挂起,等到整个文件load完毕,才被唤醒
整个文件load的实现:开个线程,从磁盘中解析xml到内存,如果文件比较大那么这个会耗时,那么主线程就会卡比较久
【微观代码】
SharedPreferences sp = getSharedPreferences("test", MODE_PRIVATE);
这句代码意思:开个线程,从磁盘中解析xml到内存
tring testValue = sp.getString("testKey", null);
这句代码意思:如果load完毕了就不会阻塞,没有load完毕就会阻塞