【问题标题】:Update sqlite cursor when table records changes?表记录更改时更新sqlite游标?
【发布时间】:2012-11-15 12:21:12
【问题描述】:

我有一个广播接收器,它在收到短信时将信息插入表中。 在主要活动中,我有一个来自该表查询的游标。是否可以将光标设置为每次 BR 对 Table 进行更改时重新查询,以便它可以反映在光标中。

我目前没有使用 OpenHelper,只是在 Activity 中打开数据库并进行查询以获取游标。

【问题讨论】:

    标签: android database cursor broadcastreceiver


    【解决方案1】:

    是的,这是可能的,而且可能很容易。

    • 如果您使用的是光标,则应该使用光标适配器。只需请求一个新的 Cursor 并使用 swapCursor() 将其传递给您的适配器。
    • 如果您使用其他形式的适配器,例如 ArrayAdapter,请致电 add()insert()

    这些方法中的任何一个都会导致绑定到适配器的视图自动刷新。

    【讨论】:

    • 主要是每次广播接收器检测到即将到来的短信时,我都需要更新光标。我可以检测到短信,但光标存在于单独的活动中,我怎么能更新光标。
    • 您可以发送一个 Intent 以使您的 Activity 调用新的 Cursor,或者如果您确定 Activity 正在运行,您可以使用全局方法。不看代码就不可能给你准确的建议。
    • 我该怎么做,发送一个意图来获得一个新的光标,我的意思是。正如你所说,我无法确定活动是否正在运行。
    • 一个 Intent 将在 Activity 没有运行时启动它。使用 putExtra()getBooleanExtra() 在 Intent 中存储和检索布尔值,如果布尔值存在,则意味着您应该刷新光标。
    • 抱歉延迟回复,我想要的是只有当 Activity 正在运行并且当前被用户使用时,光标才应该更新。否则我只是将信息存储在数据库中。我觉得这更好,因为我在 onResume() 方法中刷新光标。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 2023-03-06
    • 2018-06-09
    • 2013-09-20
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    相关资源
    最近更新 更多