问题标签 [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 回答
1622 浏览

android - 使用内容观察器刷新可扩展列表 (Android)

我有一个可扩展列表,带有一个自定义适配器、两个光标(来自基本可扩展列表适配器)和一个内容提供程序。

现在,我的主要目标是在插入带有意图调用的活动的新数据之后刷新这个可扩展列表。我正在尝试 Content Observer,但没有成功,因为没有完成刷新。

我把相关的代码(我认为)。非常感谢你。

}

迈克尔,我写的新课:

和错误

12-17 17:28:59.775: I/ActivityThread(16376): 进入进程活动消息 = 101 12-17 17:28:59.795: I/ActivityThread(16376): 退出进程活动消息 = 101 12-17 17:28 :59.805: I/ActivityThread(16376): 进入进程活动 msg = 100 12-17 17:28:59.905: W/dalvikvm(16376): threadid=1: 线程退出未捕获异常 (group=0x2aacc8a0) 12-17 17 :28:59.915:E / AndroidRuntime(16376):致命异常:主要12-17 17:28:59.915:E / AndroidRuntime(16376):java.lang.RuntimeException:无法启动活动ComponentInfo {com.smartmobilelife.personal。存档/com.smartmobilelife.personal.archive.ActPlacesManagement}:java.lang.NullPointerException 12-17 17:28:59.915:E/AndroidRuntime(16376):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2705) 12 -17 17:28:59.915:E/AndroidRuntime(16376):在 android.app。ActivityThread.handleLaunchActivity(ActivityThread.java:2721) 12-17 17:28:59.915: E/AndroidRuntime(16376): 在 android.app.ActivityThread.access$2300(ActivityThread.java:132) 12-17 17:28:59.915 : E/AndroidRuntime(16376): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071) 12-17 17:28:59.915: E/AndroidRuntime(16376): 在 android.os.Handler.dispatchMessage( Handler.java:99) 12-17 17:28:59.915: E/AndroidRuntime(16376): 在 android.os.Looper.loop(Looper.java:123) 12-17 17:28:59.915: E/AndroidRuntime( 16376): 在 android.app.ActivityThread.main(ActivityThread.java:4669) 12-17 17:28:59.915: E/AndroidRuntime(16376): 在 java.lang.reflect.Method.invokeNative(Native Method) 12- 17 17:28:59.915: E/AndroidRuntime(16376): 在 java.lang.reflect.Method.invoke(Method.java:521) 12-17 17:28:59.915:E/AndroidRuntime(16376): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876) 12-17 17:28:59.915: E/AndroidRuntime(16376): 在 com.android.internal .os.ZygoteInit.main(ZygoteInit.java:634) 12-17 17:28:59.915: E/AndroidRuntime(16376): at dalvik.system.NativeStart.main(Native Method) 12-17 17:28:59.915: E/AndroidRuntime(16376): 引起: java.lang.NullPointerException 12-17 17:28:59.915: E/AndroidRuntime(16376): at android.support.v4.app.LoaderManagerImpl.createLoader(LoaderManager.java:487) 12-17 17:28:59.915: E/AndroidRuntime(16376): 在 android.support.v4.app.LoaderManagerImpl.createAndInstallLoader(LoaderManager.java:496) 12-17 17:28:59.915: E/AndroidRuntime(16376) :在 android.support.v4.app.LoaderManagerImpl.initLoader(LoaderManager.java:550) 12-17 17:28:59.915:E/AndroidRuntime(16376): 在 com.smartmobilelife.personal.archive.ActPlacesManagement.onCreate(ActPlacesManagement.java:131) 12-17 17:28:59.915: E/AndroidRuntime(16376): 在 android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047) 12-17 17:28:59.915: E/AndroidRuntime(16376): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669) 12-17 17:28:59.915: E/AndroidRuntime (16376): ... 11 更多还有 11 个还有 11 个

0 投票
2 回答
250 浏览

android - ContentObserver - 仅观察特定应用程序的变化

我设置了一个 ContentObserver 来检查服务中的音频更改。我想知道是否有办法将 ContentObserver 的触发限制在某些应用程序上。

比如说,我正在玩一个可以更改音量的游戏,然后我在设置中更改音量。我希望该服务仅在游戏更改音量时触发警报。我该怎么做?

注意:该游戏是第 3 方应用程序。

编辑 有没有办法接收命令的堆栈顺序?假设一个程序访问设置以更改音量,显然设置会知道哪个程序正在尝试更改音量。有没有办法让设置抛出应用程序的包名?或者有没有办法知道它是否直接在设置中更改。

假设我在应用程序抽屉中并更改音量,这将被归类为直接更改并通过应用程序进行第三方更改。有没有办法找出什么时候是直接变化?

0 投票
3 回答
1560 浏览

android - 短信收件箱上的 ContentObserver 不起作用

我启动了一个像这样注册ContentObserver的服务SMS inbox

这是类,我只想知道何时对提供者进行了更改但我没有得到onChange方法的回调

我还为 Uri 注册了一个观察者,这个观察者content://mms-sms/conversations有效,我只是复制了我从这个到 SmsObserver 类的所有操作,所以我不知道出了什么问题,我可以不设置观察者content://sms/inbox吗?

0 投票
1 回答
2301 浏览

android - 用于监听联系人变化的 ContentObserver

我真的不明白为什么内容观察者会监听与联系信息无关的更改。

我只是注册到我想听变化的 URI:

但是在给某人打电话或给某人发短信后,它会触发并调用 ContentObserver 中的 onChange 方法。所以我需要将所有联系人列表与我的应用程序重新同步,尽管我不需要这样做。

我唯一感兴趣的领域:

  • ContactsContract.CommonDataKinds.Phone.CONTACT_ID
  • ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
  • ContactsContract.CommonDataKinds.Phone.NUMBER

我应该实施什么样的更改来监听此数据库项目的更改?

0 投票
1 回答
489 浏览

android - 从 ContentProvider 更新自定义片段

我正在实现两个片段以在从 ContentProvider 检索的同一个表上显示不同的视图: 1/ 扩展 ListFragment 以在列表中提供数据的类 2/ 自定义片段类,它本身包含 Google Maps v2 片段

列表片段是使用加载器和 SimpleContentAdapter 的标准实现,因此当在单独的活动中编辑列表项的名称时,更改会反映在列表中。

我想对我的自定义片段做类似的事情,以便随着数据的变化创建和更新地图标记。

这样做的最佳做法是什么?

使用 SimpleCursorAdapter 似乎不起作用,因为它返回 View 对象,而我需要创建/更新 Marker 对象,而这些对象不是从 View 派生的。我正在考虑创建自己的 CursorAdapter 类,在我的地图片段容器上实现 ContentObserver 并将其注册到 CursorAdapter。这是最佳实践吗?有谁知道任何演示最佳实践的示例代码?

抱歉,如果这是一个愚蠢的问题——我是 Android 编程的新手,所以对通知架构并不完全清楚——但我尝试阅读该主题但无济于事。

0 投票
1 回答
1029 浏览

android - Android:如何从 Observer/Receiver 获取事件和日历 ID 以删除 CalendarContract.EVENT

我目前正在开发一个将日历事件添加到用户选择的日历的应用程序。用户可以使用我的应用程序或另一个日历应用程序来编辑事件。我现在正在尝试编写一个在后台工作并监听事件或实例更改的接收器或观察者。我基本上希望我的应用程序知道何时删除事件或事件实例,以便我可以清理应用程序数据库中的一些数据,特别是当事件或实例从另一个日历应用程序中删除时。我在想我可以使用意图过滤器在清单文件中注册一个观察者。我使用广播接收器找到了以下示例,它似乎在大多数情况下都有效,但是我想知道如何获取 calendarId、eventId 甚至可能是要删除的事件的 instanceId。有任何想法吗?

0 投票
1 回答
446 浏览

android - Android ContentObserver - 联系人 - 无状态更新

我一直在关注 ICS 的框架,并且似乎 Android Contacts Provider 中的 ContactsProvider2 在任何插入/更新后调用 notifyChange,不仅如此,它还通过以下方式实现:

这意味着在联系人 AUTHORITY Uri 上的任何插入/更新/删除都会触发内容观察者获取更新。虽然从理论上讲,这非常好.. 似乎它也可以通过 Presence 更新触发。

如果我尝试在数据表上拉一个游标,它也会将数据表链接到存在,并且对存在的任何更新都有 onLoadFinished 被调用(CursorLoader)。

查看游标问题,看起来是因为 ContactsProvider2 调用

这又将 Presnce/status 列附加到每个数据行。

有没有办法注册一个内容观察者来获取数据表的更新,而实际上却没有获取状态更改的更新?我相信存在曾经被排除在 2.3 / 3.x 中的 Data.CONTENT_URI 查询中。但看起来它已经改变了。

0 投票
1 回答
137 浏览

android - 检测彩信已被删除

有没有办法检测到 MMS 消息已从本机消息传递客户端中删除?现在我有一个观察者注册Mms.CONTENT_URIonChange没有被调用。

0 投票
0 回答
367 浏览

java - 如何重置未读短信计数器变量?

我有内容观察器,它“观察”“content://sms”中的表变化。我正在开发我的应用程序,检查未读短信,它工作正常。我存储在静态变量中的未读消息的值(需要来自另一个类的引用)。

但问题是,当用户导航到消息传递应用程序(SMS 收件箱)时,我需要将此变量重置为零。

有人能指出我正确的方向吗?

提前谢谢..=)

0 投票
0 回答
1304 浏览

android - 接收短信的 ContentObserver 或 BroadcastReceiver?

为了在 Android 中捕获传入的 SMS,我知道我可以使用查看的 ContentObserver,content:/sms/也可以注册一个 BroadcastReceiver。

这两种方法的优缺点是什么?一个比另一个更可靠吗?一个更有效率吗?两者之间还有其他好处或缺点吗?

我正在编写一个需要在 ICS 或更高版本下运行的应用程序,如果这有什么不同的话。

顺便说一句,我确实读过这个讨论:ContentObserver vs. BroadCastReceiver : Battery Usage, Ram, CPU?

我只是想知道除了电池使用、RAM 和 CPU 之外是否存在有利于使用 aContentObserver或 aBroadcastReceiver来监控传入 SMS 的问题。