问题标签 [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 投票
2 回答
2062 浏览

android - 在清单文件中使用 contentObserver

我正在制作一个 android 应用程序,我想在其中获取所有来电、去电和未接来电的通话记录,我为此使用内容观察器,但我不知道如何在清单文件中使用内容观察器。谁能帮助我如何做到这一点...谢谢

0 投票
1 回答
1790 浏览

android - 广播、内容提供者和内容接收者的最佳实践

好的,我会说我是 Android 新手。我做了一些小项目,玩了一些东西,做了很多阅读。所以这是我要完成的任务:

我有一个在手机前台运行的远程服务,可以通过 wifi 网络与其他 android 设备发送和接收信息。为使用此服务而构建的手机上的 APK 包含多个 SQLite DB。我希望这些 APK 在服务中注册内容提供者,以便服务始终知道将接收到的数据放在哪里(我已经完成了这项任务)。当数据进入时,我将确定它属于哪里并将其放置在正确的数据库中(这里没问题)。那么,通知正确活动已收到新数据的最佳方式是什么。我是否注册广播接收器以供我的服务调用?如果 APK 已被操作系统杀死,广播接收器会工作吗?一旦加载了正确的活动,我会使用内容观察器来显示新数据吗?我为什么要使用 IntentServices?

我很抱歉问了这么多问题。就像我说的我学得很快,但是 Android 的 SKD 很大,而且有很多很酷的东西。我想确保我通过最佳实践正确地思考问题,并使其非常易于维护和扩展。感谢我能得到的任何帮助或建议。

0 投票
1 回答
433 浏览

android - 观察在 android 浏览器中添加/更新/删除的书签

我正在使用 Content-Observer 来观察 Android-Boroswers browser.db,它存储有关历史记录和书签的信息。我的要求是我只想在添加/更新/删除书签并更新我的书签列表时收到通知。但是即使新页面加载到浏览器中,我的听众也会被解雇(因为这属于历史记录)。有什么办法可以解决这个问题?或观察单个列的变化。我不想在每个触发的事件上都更新我的列表。提前谢谢。

0 投票
1 回答
607 浏览

android - Android Out of memory 异常和ContentResolver.registerContentObserver

在我的活动中,我有大约 10 个ContentObservers注册到ContentResolver (registerContentObserver). 我在onCreate().

在横向和纵向之间切换时,onCreate()会一遍又一遍地调用(我希望这样 - 需要更改布局),但经过几次尝试后,应用程序内存不足并崩溃。

这些观察者不是类成员,所以他们生活在onCreate().

有人知道吗?

(当我评论所有注册时,我没有任何崩溃)。

0 投票
1 回答
802 浏览

android - 使用 contentobserver 的睡眠服务

我创建了一个托管 ContentObserver (C) 的服务 (S)。C 跟踪一些数据并记录对数据库所做的更改 (D)。

S 也有一个计时器,它按时间间隔将 D 的内容转储到文件中。

我的服务在我的手机上运行,​​一段时间内一切似乎都很好(几个小时左右)。然后突然停止记录对数据所做的更改并停止转储到文件。我尝试更改数据(在 C 上引发 onChange)并在手机中浏览以保持设备处于唤醒状态,但什么也没发生 - 服务仍然处于非活动状态。S 仍在运行,当我连接到笔记本电脑时,我在日志中看不到任何错误。

我的猜测是服务正在休眠(没有 CPU 切片)。我读过一些关于唤醒锁的文章,但我不想强迫手机一直处于唤醒状态。()。另一种方法是创建一个重复警报,每 T 分钟执行一次 C 的工作(轮询)。我更喜欢 ContentObservers 的想法,因为用户可以在更新之间更改(尤其是删除)数据。使用 ContentObserver,我将获得所有更改,而不仅仅是定时间隔的快照。

关于如何定期唤醒我的服务的任何想法?

最好的问候弗雷德里克

0 投票
1 回答
968 浏览

android - 内容提供者和内容观察者同步

我有一个正在运行的服务,其中包含一个 SQLite 数据库和一个注册到数据库 URI 的内容观察者。Content Observer 使用 SQLiteOpenHelper 从数据库中查询数据。因此,当通过 Content Provider 从其他应用程序将新数据放入服务数据库时,将观察更改的光标并查询要处理的数据。问题是,如果我从其他应用程序快速插入数据,我最终会导致 Content Observer 和 Content Provider 打开数据库,并导致 SQLite 错误和数据库锁定。

我正在使用 getReadable 和 getWritable 方法并在使用后关闭数据库和任何游标。看起来CP和CO不同步。我该如何解决这个问题?

更新 当我在摩托罗拉 Atrix 上进行测试时,我没有任何问题。当我在三星 Galaxy Tab 上测试它时,我遇到了问题。在 Atrix 上,从我在目录中的调试标签中可以看出,CO 和 CP 同时打开了数据库……但仍然没有像 Galaxy 那样的问题。Galaxy给了我这个错误:

0 投票
2 回答
2832 浏览

android - SMS 发送观察者执行 3 次

我用发送的消息的观察者定义了以下服务。问题是在发送消息时,我感觉它被调用了 3 次 contentobserver 的 onChange 方法。¿ 有人知道告诉我为什么吗?

谢谢

0 投票
2 回答
3152 浏览

android - 接收联系人更改(添加、删除和更改)

不是每个联系人都有时间戳吗?

我需要收到联系人的更改(添加、删除或更改)通知。我已经实现了ContentObserver,但是通过这种方法,我只能在联系人发生更改时收到通知,但我不知道哪个联系人已被修改!有什么建议么?

0 投票
2 回答
3047 浏览

android - 如何在我的内容观察器中获取插入行的 URI?

在我的应用程序中,我在数据库中插入来自不同类的值,这给了我插入行的 id。我已经在我的 UI 中注册了它的观察者,每当插入任何行时,都会调用我的 UI 内容观察者。这两个类完全不同,所以我发现很难插入行 ID。有什么方法可以在我的内容观察器中获取此行 ID,以便我可以相应地更新我的 UI?

PS context.getContentResolver().notifyChange(uri, null); 不是我的解决方案,因为我希望在 UI 上生效(更新生效的更改)。

0 投票
1 回答
2166 浏览

android - 联系人 ContentObserver 随机调用

我正在使用 ContentObserver 来监听联系人数据库中的更改。现在我意识到 onChange() 方法会被随机调用,即使我没有对联系人进行任何更改。我怀疑这在某种程度上与自动联系人同步有关(即使此时联系人没有真正的变化)。

是否有可能仅在用户对联系人进行真正更改时才收到通知?

谢谢西蒙