【问题标题】:Android content provider modified / created dateAndroid 内容提供者修改/创建日期
【发布时间】:2012-07-07 20:24:32
【问题描述】:

例如:如果我正在访问 SMS 数据库,则消息时间戳有一个“日期”字段。但是,假设我将具有较旧时间戳的消息加载到数据库中,我怎么知道它们是在以后添加时间戳的消息之后添加的??是否有我可以访问的表格行的修改或创建日期?

编辑和澄清:

短信表有以下列:long_id、thread_id、address、person、date、protocol、read、status、type、reply_path_present、subject、body、service_center、locked、error_code、& seen。

'date' 是指消息发送的日期,而不是它被添加到数据库的日期。 Android 数据库 (SQLite) 是否会跟踪在数据库中添加或修改数据的时间?如果是这样,我该如何访问它?如果没有,只需添加/删除/更新数据而不记录,这也是一个答案。

【问题讨论】:

  • 代码?错误/日志猫?你做了什么?,你从你的研究中得出什么结论?你是怎么做到的?为什么你以这种方式接近它?等等。我们怎么知道你在说什么?您可以重新编辑您的问题以包含尽可能完整的信息吗? :)

标签: java android database android-contentprovider android-cursor


【解决方案1】:

你可以通过创建一个包含当前日期和时间的列来解决这个问题(当前意味着此刻,该行被插入):

create table mytable(_id int primary key, date datetime default current_timestamp);

这将在每一行中产生一个指向插入时刻的时间戳

另一种解决方案是简单地将当前时间戳从 SQLiteOpenHelper 中插入,例如:

ContentValues values = new ContentValues(2);
values.put(COLUMN_NAME_ID, id);
values.put(COLUMN_NAME_TITLE, title);
values.put(COLUMN_NAME_CREATED_DATE, System.currentTimeMillis());

dbHelper.getWritableDatabase().insert(TABLE_NAME, null, values);

【讨论】:

    【解决方案2】:

    sqlite 中没有插入或更新行的日期。

    【讨论】:

      猜你喜欢
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多