问题标签 [contentobserver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
766 浏览

android - Android:如何注销 CursorAdapter 的 ContentObserver 和 DataSetObserver

我发现 CursorAdapter 侧没有用于取消注册它应用的 ContentObserver 和 DataSetObserver 的接口。我只能使用 Cursor.getCursor().close() 来关闭游标,但不能取消注册其观察者。

0 投票
0 回答
335 浏览

android - HowTo Sqlite-ContentObserver

我正在编写一个基于 TabHost 的主屏幕的 android 应用程序。每个选项卡都包含来自 sqlite 数据库的数据选择。因为在许多不同的活动中可以访问和更改这些数据,所以我想开发一个 sqlite 内容观察器来跟踪对单个数据库表的更改。你将如何实现这样的 SqliteObserver?

0 投票
1 回答
1885 浏览

android - 捕获发送的短信 (Android 2.2)

我知道这里有一些与此相关的问题,但没有一个问题能帮助我完成这项工作 - 捕获正在发送的 SMS。我在三星手机上使用 Android 2.2 (FROYO)(如果这很重要的话)。

我在 Stackoverflow 上搜索了很多,并意识到我需要ContentObserver我的请求。我使用的是服务而不是活动,所以我已经ContentObserver在我的Service课堂上注册了它,它看起来像这样:

}

正如你所看到的,我已经Toast在几个地方放置了这样我可以看看这是否有效 - 不幸的是,这些通知都没有出现。另外,我尝试为 LogCat 放置一些代码,但没有任何反应。我也试过把Uri uriSMSURI = Uri.parse("content://sms");而不是,content://sms/sent 但应用程序根本不做任何事情。当然,我在 Manifest 中有权限:

我错过了什么?

0 投票
4 回答
5182 浏览

java - 短信 ContentObserver onChange() 触发多次

我知道这个问题已被多次问过,但没有人能够从我所看到的情况中得出一个可行的答案。

我正在开发一个应用程序来拦截短信,并根据发送#,弹出一个自定义警报。我让它与广播接收器一起工作得很好,但是如果用户安装了 goSms,onReceive()则永远不会调用该方法,因为 goSms 在它到达我的应用程序之前会中止它。

为了解决这个问题,我尝试了一个内容观察器,content://sms/ 它工作得很好,但是它onChange()被调用了两次,参数完全相同。我试图检查时间戳,但它们是相同的,类型和我设置的所有其他参数也是如此。

从我所见,这是一个常见问题,但我在任何地方都没有看到答案。

由于onChange()被解雇了两次,我也收到了两次警报。我终其一生都无法找到解决方法。

0 投票
2 回答
2068 浏览

android - 即使光标没有变化,也会调用 ContentObserver

我有一个内容观察者,当我的同步适配器添加的联系人之一被修改时,应该通知它。我注册和注销观察者这样做:

问题是,即使在我注册观察者后光标为空(getCount 返回 0)时,我也会调用 onChange 我在本机通讯簿中所做的任何事情。不应该仅在修改光标中的条目之一时调用观察者吗?该文档指出:

注册一个观察者,当支持此游标的内容发生更改时调用

什么是“支持此光标的内容”?我认为它是光标中联系人的lookupuri列表,但看起来它足以改变ContactsContract.RawContacts.CONTENT_URI。

我还尝试为每个 Uri 注册一个观察者。它没有帮助。虽然 ContentResolver.registerContentObserver 的文档指出:

注册一个观察者类,当给定内容 URI 标识的数据发生变化时,该类会获得回调。

(我将 notifyForDescendents 设置为 false,但无论如何它都不应该调用观察者)。

怎么了?谢谢

0 投票
1 回答
1060 浏览

android - 在不更改内容的情况下触发 ContentObserver

我使用这里介绍的模式:http ://www.youtube.com/watch?v=xHXn3Kg2IQE (虽然非常轻微的修改。修改不应该与这个问题非常相关)。

情况是这样的:活动向 ContentProvider 查询资源。ContentProvider可以立即返回当前在本地数据库中的元组,启动 REST 方法,并将新数据从服务器返回到 ContentObserver。

但这对我来说有点奇怪,因为你必须在两个地方处理数据——一次用于本地数据库,一次用于 REST 方法完成时。当然,您可以创建一个处理它的方法,这会有所帮助,但仍然如此吗?如果我可以手动触发 ContentObserver,而无需实际更改内容,则处理数据只会发生在一个地方 - 在 ContentObserver 中。这可能吗?

然后该活动将查询 ContentProvider,这将使用本地数据库中的资源触发 ContentObserver。将查询 web 服务,一旦 REST 方法完成,ContentObserver 将再次被触发(因为我们现在除了本地数据库中已有的数据外,还拥有来自 web 服务的数据)。

如果可能的话,启动对 ContentProvider 的查询会变得有点尴尬,因为从 ContentProvider 返回的游标可能是空/null,但如果它允许我在一个地方处理所有内容,这不是可以接受的吗?

0 投票
1 回答
1251 浏览

android - 联系人的 ContentObserver 错误

我是初学者,我正在开发一个应用程序,我希望在添加新联系人时收到通知。我尝试了以下代码,但在下面的 Logcat 跟踪中出现错误。

我还有一个疑问是,一旦我从我的应用程序注册了我的 ContentObserver,即使用户退出我的应用程序,它也会收到通知,还是我应该在服务中编写它并在后台运行它。请帮忙

这是我创建上述类的对象的示例活动

Logcat 跟踪:

0 投票
1 回答
2457 浏览

android - 短信 ContentObserver 的处理程序

我在这里的两篇文章中找到了这段代码:

但是我不知道 MyContentObserver 的构造函数中传递的这个处理程序是什么。

我想在“content://sms//sent”中注册一个 ContentObserver,以便在 Android 发送短信时收到通知,并且在 ContentObserver 的文档中说,方法 OnChange 将从构造函数中传递的处理函数中调用。

0 投票
2 回答
2123 浏览

android - ContentObserver - 简直不敢相信我所读到的

我已经阅读并阅读了相关的问答,并且无法相信如果我的自定义 ContentProvider 执行以下操作:

... ContentObservers 没有办法检索 rowId。

这真的正确吗?我想我一定错过了一些东西,因为这看起来不太好。

0 投票
0 回答
726 浏览

android - 如何在android中使用内容观察器

我的应用程序中有一个返回光标的函数。游标可能会返回多行数据,并且总是从两个连接表中返回 5 列数据。第 1-4 列永远不会改变。第 5 列可以根据用户操作进行更改。如何注册内容观察者以在第 5 列因任何行更改而发生更改时通知我。这是一个例子。在我的主要活动中,我打电话

这给了我 5 列数据。然后我获取这 5 列数据并使用游标适配器将每一行作为列表项放在 ListView 中。

当用户没有单击列表项时,该项的背景是一种颜色。在他们单击列表项后,它是另一种颜色。这只是为了帮助他们区分已经查看和未查看的项目。

第 5 列可以为空、零 (0) 或一 (1)。如果它为空,那么它不在我的 ListView 中。如果它是零,它在我的列表视图中具有第一个背景颜色。如果它是 1,那么它在我的列表视图中,具有第二种背景颜色。

我最初解决这个问题的方法是使用一个处理程序,它每 750 毫秒无限循环一次,以正确的颜色从列表视图中重新加载数据。我宁愿只在数据更改时调用该处理程序,因为循环版本看起来有点骇人听闻。