桌面上次更新时的Android检查

时间:2012-05-10 15:35:23

标签: android sql database sqlite

您好,我开始开发Android应用程序,该应用程序将使用可容纳多个表的SQLite数据库。我想知道的是,上次更新特定表时,因为某些数据不需要更新,例如一周,其他表需要每隔几小时更新一次。尝试节省带宽并创建更快速响应的应用程序。不确定是否有一个命令(似乎找不到任何东西)或者我是否应该在每个表中添加一个具有当前时间和日期的字段,并使用System.currentTimeMillis()计算它有多长是。

我知道这是在下面被问到的,但从未得到过回答,任何帮助都会很棒:)

Check when an SQLite database/table was last updated (PHP)

3 个答案:

答案 0 :(得分:8)

有点晚了,但到底是什么 - 你还可以在你的桌子上放一堆TRIGGER并维护一张修改表,如下图所示。使用modifications表中的类型和日期+时间记录最近的修改。创建这样的TRIGGER可以通过简单的方法轻松完成。要求在SQLiteOpenHelper

中创建的每个表格
CREATE TABLE table1 (
    _id INTEGER PRIMARY KEY AUTOINCREMENT,
    text1 TEXT,
    text2 TEXT
);

CREATE TABLE table2 (
    _id INTEGER PRIMARY KEY AUTOINCREMENT,
    text1 TEXT,
    int1 INTEGER
);

CREATE TABLE modifications (
    table_name TEXT NOT NULL PRIMARY KEY ON CONFLICT REPLACE,
    action TEXT NOT NULL,
    changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TRIGGER IF NOT EXISTS table1_ondelete AFTER DELETE ON table1
BEGIN
    INSERT INTO modifications (table_name, action) VALUES ('table1','DELETE');
END;

CREATE TRIGGER IF NOT EXISTS table2_ondelete AFTER DELETE ON table2
BEGIN
    INSERT INTO modifications (table_name, action) VALUES ('table2','DELETE');
END;

CREATE TRIGGER IF NOT EXISTS table1_onupdate AFTER UPDATE ON table1
BEGIN
    INSERT INTO modifications (table_name, action) VALUES ('table1','UPDATE');
END;

CREATE TRIGGER IF NOT EXISTS table2_onupdate AFTER UPDATE ON table2
BEGIN
    INSERT INTO modifications (table_name, action) VALUES ('table2','UPDATE');
END;

CREATE TRIGGER IF NOT EXISTS table1_oninsert AFTER INSERT ON table1
BEGIN
    INSERT INTO modifications (table_name, action) VALUES ('table1','INSERT');
END;

CREATE TRIGGER IF NOT EXISTS table2_oninsert AFTER INSERT ON table2
BEGIN
    INSERT INTO modifications (table_name, action) VALUES ('table2','INSERT');
END;

答案 1 :(得分:3)

我知道没有SQL函数可以做到。

您可以使用时间戳为每条记录添加一个字段,然后执行查询以从表中返回最新的时间戳。

答案 2 :(得分:-2)

我相信可以通过以下步骤实现操作

第1步:您可以使用 sqlite触发器机制

步骤2:从步骤1调用 sqlite 命令,以将更新的记录写入文本文件(检查将结果写入文件:http://www.sqlite.org/sqlite.html

第3步:执行文件系统观察程序操作,如C#PHP

第4步:通过短信网关

数据从php发送到android 另一个疯狂的弗兰肯斯坦算法,正在为我的申请工作;-)

欢迎使用任何可行且简单的方法....