这个问题大约是一年前的问题,但我认为这是一个常见问题。这就是我处理数据库更改的方式:
在我的适配器(SQL ADAPTER)中,我显然有更新/删除或将数据插入数据库的方法。像这种方法:
public long addProduct(String code, String name ... String gid, String gdate) {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_CODE, code);
initialValues.put(KEY_NAME, name);
...
initialValues.put(KEY_CHECK, this.checkfalse);
initialValues.put(KEY_GID, gid);
---------
Intent i = new Intent("data_inserted");
i.putExtra("date", date);
sendBroadcast(i);
---------
return mDb.insert(SQLITE_TABLE, null, initialValues);
}
更改发生后,它将发送广播意图。要获取这个,首先在您的onCreate方法(uploaderClass 或其他)中注册您的广播接收器。这将如下所示:
registerReceiver(Updated, new IntentFilter("data_inserted"));
而这个方法来处理下面的动作!
private final BroadcastReceiver Updated= new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
doSomething(); // Data was inserted upload it
}
};
编辑 :
为了只从数据库中获取新项目,我签署了新产品。我有一个“信息”列,其中可以包含“上传”、“更新”或“删除”等字符串。然后我从数据库中获取包含这些特殊字符串的所有项目并上传它们。之后,我将它们设置为 null 或空字符串。随心所欲。希望我解释得不复杂:)