从 sqlite 触发器调用 Java 方法 (android)

2023-12-31

我想要使​​用 sqlite 触发器注册回调方法 例如,

public void printLog(){
 Log.i("TAG","1 row added");
}

在 sqlite 中插入任何行后调用此方法。

是否可以?

怎么做?


SQLite 提供数据变更通知回调 http://www.sqlite.org/c3ref/update_hook.html。我不认为 Android 直接公开它们,但它确实有 CursorAdapter 等,它提供了一些更改通知。

您可以使用也可以使用getContentResolver().registerContentObserver http://developer.android.com/reference/android/content/ContentResolver.html#registerContentObserver%28android.net.Uri,%20boolean,%20android.database.ContentObserver%29但不幸的是它并没有告诉你做了什么样的改变,它可能是删除、插入或更新。

如果您控制与数据库接口的 ContentProvider,那么您可以触发 Intent 或使用getContentResolver().notifyChange http://developer.android.com/reference/android/content/ContentResolver.html#notifyChange%28android.net.Uri,%20android.database.ContentObserver%29发送标识表和操作的特殊 Uri 通知。您可以通知的 Uri 示例可能是: content://my-authority/change/table-name/insert

但即使如此,您也不确切知道哪些行受到更改的影响。

似乎写入更改日志表的触发器将保证您听到所有更改,无论它们来自何处,并且您可以知道发生的确切 ID 和操作。不幸的是,这意味着插入/更新/删除速度较慢,并且意味着您可能需要某种服务来处理和删除更改。

我很想听听这些是否有更好的解决方案!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 sqlite 触发器调用 Java 方法 (android) 的相关文章

随机推荐

  • 如何使用构建名称设置器插件?

    有谁知道是否有关于如何使用 jenkins 的构建名称设置器插件的用户手册 jenkins 插件网站似乎只有一个下载插件的链接 没有关于如何使用它的信息 https wiki jenkins ci org display JENKINS B
  • Jquery JQGrid - 如何设置网格标题单元格的对齐方式?

    jqgrid 中是否可以对齐网格列标题 例如左对齐或居中对齐 在 jqrid 文档中http www trirand com jqgridwiki doku php id wiki colmodel options http www tri
  • 是否可以在 sed 地址中进行简单的算术运算?

    是否可以在 sed 地址中进行简单的算术运算 判断通过 地址 手册部分 http www gnu org software sed manual sed html Addresses 答案似乎不是 但也许有一个解决方法 例如 如何打印文件的
  • 如何在给定范围内插入 1000 个随机日期?

    我是 SQL Server 新手 我需要生成从给定日期范围中选择的随机日期 就像雇员的受雇日期应该介于2011 01 01 and 2011 12 31 生成的日期应随机插入到 1000 行表中 任何人都可以指导我解答我的疑问吗 decla
  • Spring 集成和重试:我是否需要为每个服务激活器使用单独的重试 bean?

    我有一个 spring 集成管道 并且有许多不同的服务激活器 我想启用重试 我想使用相同的重试策略 即重试次数 退避策略等 我可以只使用一个实现重试策略的 bean 并将其用于多个不同的服务激活器 还是每个服务激活器都需要自己的重试 bea
  • 使用 sketch.js 为移动网页绘制画布会重置 ontouch

    我正在使用sketch js用于在 HTML5 画布上绘图的插件 虽然它在台式电脑上运行良好 但在移动浏览器上似乎存在一些问题 问题是如果我画两个不同的形状 一旦我触摸画布 它就会重置为空白 为了完全清楚 我会做并且example 绘制数字
  • 具有 ClipboardData 属性的 Angular2 组件

    我有一个 Angular2 组件 它具有从剪贴板粘贴数据的方法 inputPaste event let clipboardData event clipboardData 这种方式不适用于 IE10 但 IE 有一个带有属性 Clipbo
  • Firebase - 用户对事物的评论[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在构建一个 Android 应用程序 允许用户对广告牌前 100 名上的每首歌曲发表评论 我从 JSON 文件中解析了该信息 我将
  • 可以“跳过”行的数组公式

    我需要在谷歌电子表格中引入功能 该功能将允许用户编辑数组公式的结果 提出此要求的原因是 ARRAYFORMULA 为一组单元格设置默认值 但用户有时需要覆盖这些默认值 我想知道这是否有可能 example Row Array 1 Array
  • 算法:从一组游戏中选择成对的球队

    我正在尝试为体育联盟创建一个调度程序 我想将球队分组 以便每个球队每组进行一场比赛 我认为我正在尝试做的事情是计算机科学中现有的问题 但我不知道它叫什么 而且我很难找到有关它的信息 不管怎样 情况如下 假设我有一组团队A 1 2 3 n 以
  • 您在编写单元测试时最常犯的错误是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 您在编写单元测试时最常犯的错误是什么 耦合 缺乏凝聚力 尝试一次测试太多功能 没有测试足够的功能 如果您有该错误的示例 请发布一些示例代码 根本
  • 如何防止用户代理显示无法识别的 MIME 类型的下载窗口?

    如果您设置Content Disposition标头至attachment 这会导致用户代理始终显示该文件的下载窗口 我想做与此相反的事情 强制用户代理始终直接显示响应 在这种特殊情况下 我有一个发送 JSON 的 API 我想把它作为ap
  • Flexbox 项目多行文本溢出

    我有一个弹性物品 里面有很长的绳子 我想把它包裹起来 但这不起作用 I set flex 1 1 500px 例如 flex basis 500px 并且它应该用以下内容包裹字符串word wrap break word 但事实并非如此 而
  • Kinesis 流待处理消息计数

    我正在尝试将 AWS Kinesis 流用于我们的数据流之一 我想出于操作目的监视流上的待处理消息 根据积压向下游扩展 但无法找到任何在我的流中提供 大约 待处理消息的 API 这看起来很奇怪 因为消息在 7 天后就会过期 如果生产者和消费
  • Java 程序为音频文件创建 PNG 波形

    如何使用 Java 将 Wav 文件转换为 PNG 波形图像文件 java MyProgram class path to wav file path where to write png file 预期成绩 指定路径中保存的png是传入的
  • 更改 .png 以与 JpegImagesToMovie.java 一起使用

    我正在使用 JpegImagesToMovie java 将图像转换为 mov 文件 我想知道是否可以编辑它来处理 png 文件 因为视频的质量不是很好 更改它会改善它 ImageIO write img png new File C Us
  • 何时使用define_singleton_method v Define_method

    在一个答案中这个问题 https stackoverflow com questions 19368437 how to use define method inside initialize用户 mu 太短 解释说您不希望对象的行为在初始
  • QML Row 与 RowLayout

    我正在尝试为我的应用程序编写一个顶栏 其中应主要包含应用程序徽标 小图像 和应用程序标题 仅文本 此外 我希望这个顶栏能够根据窗口的高度自动调整大小 我是 QML 新手 但我想我应该将这些组件包装在Row or a RowLayout ht
  • Swift 在 UILongPress 上保留 UISwitch 状态

    我在我的项目中添加了 UISwitch 上的 UILongPressGestureRecognizer class ViewController UIViewController UIGestureRecognizerDelegate va
  • 从 sqlite 触发器调用 Java 方法 (android)

    我想要使 用 sqlite 触发器注册回调方法 例如 public void printLog Log i TAG 1 row added 在 sqlite 中插入任何行后调用此方法 是否可以 怎么做 SQLite 提供数据变更通知回调 h