SettingsProvider 之 FileObserver
来源:互联网 发布:windows 便笺 编辑:程序博客网 时间:2024/05/22 08:17
转载请注明出处:http://blog.csdn.net/droyon/article/details/35558637
// FileObserver for external modifications to the database file. // Note that this is for platform developers only with // userdebug/eng builds who should be able to tinker with the // sqlite database out from under the SettingsProvider, which is // normally the exclusive owner of the database. But we keep this // enabled all the time to minimize development-vs-user // differences in testing. //FileObserver是外部对数据库修改的监听。 //这是userdebug或者eng版本的平台开发者,开发者也是独占数据库的所有者,能够在SettingsProvider中摆弄sqlite数据库。 //这个监听,能够保持长久运行,减小开发者和用户之间的差距。 private static SparseArray<SettingsFileObserver> sObserverInstances = new SparseArray<SettingsFileObserver>(); private class SettingsFileObserver extends FileObserver { private final AtomicBoolean mIsDirty = new AtomicBoolean(false); private final int mUserHandle; private final String mPath; public SettingsFileObserver(int userHandle, String path) { super(path, FileObserver.CLOSE_WRITE | FileObserver.CREATE | FileObserver.DELETE | FileObserver.MOVED_TO | FileObserver.MODIFY); mUserHandle = userHandle; mPath = path; } public void onEvent(int event, String path) { int modsInFlight = sKnownMutationsInFlight.get(mUserHandle).get(); if (modsInFlight > 0) { // our own modification. return; } Log.d(TAG, "User " + mUserHandle + " external modification to " + mPath + "; event=" + event); if (!mIsDirty.compareAndSet(false, true)) {//isDirty为true,说明在进行fullyPopulateCaches,不需要在做。 // already handled. (we get a few update events // during an sqlite write) return; } Log.d(TAG, "User " + mUserHandle + " updating our caches for " + mPath); fullyPopulateCaches(mUserHandle); mIsDirty.set(false); } }
0 0
- SettingsProvider 之 FileObserver
- SettingsProvider 之 DatabaseHelper
- SettingsProvider 之SettingsCache
- SettingsProvider 之CachePrefetchThread
- SettingsProvider 之 SqlArguments
- SettingsProvider之Secure
- SettingsProvider的藏身之处
- SettingsProvider的藏身之处
- SettingsProvider之增删改查
- SettingsProvider之onCreate、lookupValue、call
- SettingsProvider之System内部类
- Android系统APP之SettingsProvider
- Android系统APP之SettingsProvider
- FileObserver
- SettingsProvider之Settings.System(Secure)-------Action
- SettingsProvider之Settings.System(Secure)内部类
- Android FileObserver
- FileObserver使用
- SettingsProvider 之 SqlArguments
- 望远大光圈拍风景的魅力--不破不立系列(1)
- WWDC2014 IOS8 APP Extensions
- 360 浏览器 浏览器内核控制Meta标签说明文档
- IOCP模型总结(总结回顾)
- SettingsProvider 之 FileObserver
- web service初步了解.手机号码.
- xybb__所遇到乱码问题及解决方法
- SQL server和MYSQL中的自增的一些对比
- 向spring大师致敬
- 建议学习路径:
- 【Android】SlidingMenu属性详解
- poj1330 Nearest Common Ancestors LCA倍增法 或 LCA转RMQ
- GDB调试工具