Bug???????
???????????? ???????[ 2016/11/30 11:11:10 ] ?????????????????? ??????
	????????android??????????????????SharePreference???????????????????????洢?????????????ClassCastException?? String can not be cast to Boolean. ???????Щ?????д?′??????????
	????????????????
	????public static void write(KeySet key?? String value) {
	????PreferenceUtils instance = new PreferenceUtils();
	????instance.editor.putString(key.name()?? value);
	????instance.editor.apply();
	????}
	??????????д??????????ε???????????????????????????String????????????Boolean??????????????Boolean??????????= =
	????????????????????????????????????????????????????????????????????????棬??????????????(?3?)?
	????????
	??????????????????????????????API????ɡ?????????????д???Щ???????????????????????????????
	????????????????????????????Щ??ɡ?
	public void apply() {
	final MemoryCommitResult mcr = commitToMemory();
	final Runnable awaitCommit = new Runnable() {
	public void run() {
	try {
	mcr.writtenToDiskLatch.await();
	} catch (InterruptedException ignored) {
	}
	}
	};
	QueuedWork.add(awaitCommit);
	Runnable postWriteRunnable = new Runnable() {
	public void run() {
	awaitCommit.run();
	QueuedWork.remove(awaitCommit);
	}
	};
	SharedPreferencesImpl.this.enqueueDiskWrite(mcr?? postWriteRunnable);
	// Okay to notify the listeners before it's hit disk
	// because the listeners should always get the same
	// SharedPreferences instance back?? which has the
	// changes reflected in memory.
	notifyListeners(mcr);
	}
	????????apply?????????????е? commitToMemory() ???????д??????У??????д???????????д????????? enqueueDiskWrite ??????д???洢?豸?У???????????????
	???????????????????? putString ??????????????? commitToMemory() ??д????檔
	???????????2?????? commitToMemory() ????????????????????( ω )?
	// Returns true if any changes were made
	private MemoryCommitResult commitToMemory() {
	...
	for (Map.Entry<String?? Object> e : mModified.entrySet()) {
	String k = e.getKey();
	Object v = e.getValue();
	if (v == this) {  // magic value for a removal mutation
	if (!mMap.containsKey(k)) {
	continue;
	}
	mMap.remove(k);
	} else {
	boolean isSame = false;
	if (mMap.containsKey(k)) {
	Object existingValue = mMap.get(k);
	if (existingValue != null && existingValue.equals(v)) {
	continue;
	}
	}
	mMap.put(k?? v);
	}
	mcr.changesMade = true;
	if (hasListeners) {
	mcr.keysModified.add(k);
	}
	}
	...
	}
	??????????????????????????????????£????????????£????????д?? mcr ?н?????????????????????????κ???????????
	???????
	??????ε??????????е?????????????????????????????????????????????????д????????????е??
	??????????????????????????е???仰?? >???????????????????????п????????????
	???????????????????????????÷??????????д???????????????????????????????????????????
	?????????????????????????????????????????????1. д???????????2. ??????????
	???????
	???????д??????????????????????????????????????????????????????????????????????????С?
	??????????????????????????飬?????????????????????????
	@Override
	public void onSharedPreferenceChanged(SharedPreferences sharedPreferences?? String _key) {
	KeySet key = KeySet.valueOf(_key);
	boolean enable = PreferenceUtils.read(key?? false);
	if (enable) {
	doSomething();
	} else {
	doOtherthing();
	}
	}
	??????????????????????κε????????????????boolean????????????= =
	???????
	?????????????????????????????????????????
	???????????????????????boolean????????????????????????????????????????????????Stringд???????????
	?????????????????????????????????????????????????
	???????????????侲???????????catch?????StackTrace????????????????????????????????
	????????????????????????????????????Υ?????????????ο????????????????
	?????????????????????????????????к?????????????Ч?????????????κδ????????????
??????
					
					???·???
App??С????H5?????????????????Щ??
2024/9/11 15:34:34?????????????????????????
2024/9/10 11:13:49P-One ???????????????????????????????????????
2024/9/10 10:14:12???????????????????????????
2024/9/9 18:04:26??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44
					
			
								
								
								
								
								
								
								
								
								
								
				
sales@spasvo.com