从sqlite触发器调用Java方法(android)
我想要使用sqlite触发器注册回调方法 比如说,从sqlite触发器调用Java方法(android),android,sqlite,triggers,callback,Android,Sqlite,Triggers,Callback,我想要使用sqlite触发器注册回调方法 比如说, public void printLog(){ Log.i("TAG","1 row added"); } 此方法在sqlite中插入任何行后调用 可能吗 怎么做 您可以设置内容观察者此链接将帮助接收SQLite提供的内容更改的回调。我不认为Android会直接公开它们,但它确实有一些提供更改通知的CursorAdapter 您也可以使用,但遗憾的是,它没有告诉您所做的更改类型,可能是删除、插入或更新 如果您控制与DB接口的ContentP
public void printLog(){
Log.i("TAG","1 row added");
}
此方法在sqlite中插入任何行后调用
可能吗
怎么做 您可以设置内容观察者此链接将帮助接收SQLite提供的内容更改的回调。我不认为Android会直接公开它们,但它确实有一些提供更改通知的CursorAdapter 您也可以使用,但遗憾的是,它没有告诉您所做的更改类型,可能是删除、插入或更新 如果您控制与DB接口的ContentProvider,那么您可以触发一个意图或使用来发送一个特殊的Uri通知,该通知标识表和操作。您可以通知的Uri示例可能是:content://my-authority/change/table-name/insert 但即使这样,您也不知道哪些行受到更改的影响 似乎写入更改日志表的触发器可以保证您听到所有更改,无论它们来自何处,并且您可以知道发生的确切id和操作。不幸的是,这意味着插入/更新/删除速度变慢,这意味着您可能需要某种服务来处理和删除更改
我很想听听这些是否是更好的解决方案 为什么不在代码下调用,无论您在哪里插入记录?为什么要通过
触发器进行调用
?这只是一个例子。我希望在更改sqlite dbs后收到通知。为什么不检查db insert api的返回值?它将返回新插入行的行ID,如果发生错误,则返回-1。