【发布时间】:2017-01-26 16:10:00
【问题描述】:
目标
我想问几个关于 Android 应用解决方案实施的问题。
上下文
我们的应用程序有一个 SQlite 数据库。我们还使用ContentProvider 轻松管理数据库数据的更改并在发生更改时得到通知。
应用程序有一个Activity,其中包含一个ViewPager 和4 个Fragment。这 4 个 Fragment 中有 2 个使用公共数据。
问题
假设我们存储用户的信用卡数据。他可能在数据库中保存了几张卡片,所以我们需要知道哪一张是活动的。
我只能想到 2 个解决方案。
- 保存在
Preferences - 在信用卡表中添加一个活动字段
第二种解决方案的示例:
╔════════════════╦═════════════╦═══════════════╦════════╗
║ name ║ id ║ secret_number ║ active ║
╠════════════════╬═════════════╬═══════════════╬════════╣
║ personal visa ║ 02468024680 ║ 659 ║ true ║
║ company visa ║ 13579135791 ║ 362 ║ false ║
╚════════════════╩═════════════╩═══════════════╩════════╝
我认为第二个更好,因为ContentProvider 会在 active 卡发生变化时通知我们的 Fragments,并且他们将能够反映那一刻的变化。
问题
但是,我不确定这是否在good practices 内,因为它可能会导致问题,例如将多行标记为活动。除此之外,我还想问是否有任何方法可以用一条 sql 语句更新所有行,我的意思是,active 一条,其余的设置为 false。
提前致谢。
【问题讨论】:
-
嗨,欢迎来到 Stack Overflow。 SO 是一个编程问题的问答平台,而不是一个讨论论坛。请先阅读:stackoverflow.com/help/on-topic
标签: android database sqlite android-sqlite android-contentprovider