Android onChange 事件未在 contentObserver 中触发,用于 android 5 (Lollipop) 上的 chrome 历史记录
Posted
技术标签:
【中文标题】Android onChange 事件未在 contentObserver 中触发,用于 android 5 (Lollipop) 上的 chrome 历史记录【英文标题】:Android onChange event not triggered in contentObserver for chrome history on android 5 (Lollipop) 【发布时间】:2015-01-18 13:49:00 【问题描述】:我注意到我的 chrome 历史记录和书签的 contentObservers 不再在 android lolipop 上触发。该代码在旧版本的 android 上完美运行(无论 chrome 版本如何),但在 Lollipop 上它不再工作了。
我已经提交了关于铬的错误,这已被 cmets 中的其他人证实。 https://code.google.com/p/chromium/issues/detail?q=obogzch%40gmail.com&colspec=ID%20Pri%20M%20Iteration%20ReleaseBlock%20Cr%20Status%20Owner%20Summary%20OS%20Modified&id=435541&thanks=435541&ts=1416575883
有人找到解决办法了吗?
乐: 感谢 Fuong Lee 的解决方法,在添加内容观察者后调用此方法以启动它:
private boolean checkContentProvider(Uri uri) //uri = content://com.android.chrome.browser/history
Cursor mCur = getContentResolver().query(uri, null, null, null, null);
return (mCur.getCount() > 0);
【问题讨论】:
【参考方案1】:当我将 chrome 书签的新 URI 从“content://com.android.chrome.browser/bookmarks”更改为新 URI“content://com.android.chrome.browser/history”时,同样的问题“在 Lolipop 版本上未触发 onChange 事件”。而且,我在观察者注册后尝试查询数据进行检查……它像魔术一样运行。我不知道为什么它运行正常,希望对您有所帮助。
【讨论】:
我可以确认这一点。感谢您的回答!添加观察者后调用此方法并触发:private boolean checkContentProvider(Uri uri) // String[] proj = new String[] Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL ; Cursor mCur = getContentResolver().query(uri, null, null, null, null); return (mCur.getCount() > 0);
以上是关于Android onChange 事件未在 contentObserver 中触发,用于 android 5 (Lollipop) 上的 chrome 历史记录的主要内容,如果未能解决你的问题,请参考以下文章
输入类型 = 范围上的 onchange 事件在拖动时未在 Firefox 中触发
React 测试库未在快照中显示输入 onChange 道具
InAppBrowser 事件未在 Cordova 3.0.0 / Android 中触发