【问题标题】:Android SQLite database lifecycleAndroid SQLite 数据库生命周期
【发布时间】:2013-05-05 18:44:06
【问题描述】:

我是安卓新手。我想问一下 SQLite 数据库生命周期。基本上,我想在主类中包含插入数据方法和查看数据方法(当我们打开应用程序时,它基本上称为 1st)。然后我将在另一个活动中对数据库进行一些更新。我想问的是,下次我打开应用程序时,会显示哪些数据?是我用插入方法插入的第一个数据还是更新的数据?

【问题讨论】:

    标签: android database eclipse sqlite lifecycle


    【解决方案1】:

    我不完全理解你的问题。所以我希望这能回答它。有 4 个操作,您应该实现:创建、读取、更新、删除。例如,当您有一个包含 id、姓名、电话号码的联系人表时,您可以创建 (John, 012345)。如果您随后调用 id 为 1 的 read 方法,您将得到 (John, 012345)。但是如果你在阅读之前更新它,你显然会得到更新的项目——当你关闭活动时,数据库没有删除任何东西。我强烈建议您创建一个新类来处理这些 crud 操作,因为当您想更改更新操作并且必须在应用程序的每一行中搜索它时,您会发疯的。我还建议您阅读此博客。它为我节省了很多时间: http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/

    【讨论】:

    • 可以把insertData()方法放到Main类中吗?
    • 您必须获取应用程序的上下文才能创建 sqliteopenhelper / databasehandler - 类。所以你必须调用类似:DatabaseHandler db = new DatabaseHandler(this);
    • 我已经测试过了。你可以把它放在你的 inserData() 方法中。然后只需将“this”替换为“getApplication()”就可以了:DatabaseHandler db = new DatabaseHandler(getApplication());
    【解决方案2】:

    据我了解你的问题,

    我的回答是 -> 您应该会看到更新后的数据,因为 Db 在整个应用程序中都是相同的。

    【讨论】:

      【解决方案3】:

      将显示的数据是更新后的数据,因为 SQL 操作是即时的。除非遇到任何错误,否则 onUpdate() 不太可能不会更新数据库。在运行查询命令后,您可以使用光标附带的 CursorLoader 来查看它本身。这可以在仅显示数据库内容的活动中完成。

      对于数据库操作,使用 Content Providers 是有益的,因为您可以将应用扩展到小部件、与其他应用共享数据等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-14
        • 2013-04-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多