gpt4 book ai didi

android - 当正常的 sql 插入或更新时通知内容解析器

转载 作者:搜寻专家 更新时间:2023-11-01 09:05:04 24 4
gpt4 key购买 nike

我创建了一个小型内容提供程序(我只用它来查询数据库表并获取一些值)。我已确认提供商工作正常。

表值通过正常的 sql 插入(而不是通过任何内容提供程序)定期更新

每当通过上述正常的 sqlite 操作发生插入/更新或删除时,我需要通知内容解析器,这些内容解析器是为与内容提供者通信而编写的,仅用于查询数据库并获取一些值。

这可能吗?如果是,需要做什么?

感谢任何帮助。

编辑以包含我的数据库插入方法:

public void insert(ArrayList<Integer> profileValues, String tableName){
String duplicationCheck = " WHERE NOT EXISTS (SELECT 1 FROM profiles WHERE devID = "+"'"+profileValues.get(0)+"'"+");";
if(tableName.equals(PROFILES_TABLE)){
profilesDB.execSQL("INSERT INTO " +
PROFILES_TABLE +
"(devID,alert,findme,proximity,timep,conn_status) SELECT "+"'"+profileValues.get(0)+"'"+","+profileValues.get(1)+","+profileValues.get(2)+","+profileValues.get(3)+","+profileValues.get(4)+","+profileValues.get(5)+duplicationCheck);
}
getContentResolver().notifyChange(MY_CONTENT_URI, null);

}

最佳答案

任何时候您手动更新底层数据库并需要通知已注册的 ContentObserver 实例,调用 ContentResolver 上的 notifyChange() 上下文

因此,例如,假设您注册了一个具有常量值 MY_CONTENT_URIContentObserver:

//Insert, update, or delete data in the database

//If you are within a Context, like Activity or Service
getContentResolver().notifyChange(MY_CONTENT_URI, null);

//Otherwise pass in a Context you can call on
context.getContentResolver().notifyChange(MY_CONTENT_URI, null);

您传递的特定 Uri 的所有注册观察者都会收到通知。

关于android - 当正常的 sql 插入或更新时通知内容解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12573278/

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