gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 01:55:45 31 4
gpt4 key购买 nike

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

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

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

这可能吗?

该怎么做?

最佳答案

SQLite 提供 Data Change Notification Callbacks .我不认为 Android 会直接公开它们,但它确实有例如 CursorAdapter,它提供了一些更改通知。

您可以使用也可以使用 getContentResolver().registerContentObserver但不幸的是,它没有告诉您进行了何种更改,可能是删除、插入或更新。

如果您控制与数据库交互的 ContentProvider,那么您可以触发 Intent 或使用 getContentResolver().notifyChange发送标识表和操作的特殊 Uri 通知。您可以通知的示例 Uri 可能是:content://my-authority/change/table-name/insert

但即便如此,您也无法确切知道哪些行受到了更改的影响。

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

我很想知道这些是否是更好的解决方案!

关于android - 从 sqlite 触发器调用 Java 方法 (android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15268684/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com