【问题标题】:How to handle number of activities with SQLite?如何使用 SQLite 处理活动数量?
【发布时间】:2012-08-01 23:09:48
【问题描述】:

我有一个 Activity,我创建了一个名为 DatabaseHelper 的类,它扩展了 SQLiteOpenHelper, 现在当我想使用它时(我在许多简单的例子中看到过)我需要有新的 SQLiteDatabase 对象并在我的 Activity 代码中实现插入、更新、删除...。

如果我想处理具有多个活动的数据库并只创建一次 DatabaseHelper,那么正确的设计是什么,因为所有活动都可以使用它。(并且没有重复的代码。

简单地说:活动数量的正确类 SQLite 结构是什么

谢谢!!

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    只需在整个应用程序中使用一个 DatabaseHelper,重复自己没有任何好处。

    【讨论】:

    • 1.但是,如果我需要从多个活动中将数据插入数据库,我将在其他活动中从 DatabaseHelper 创建新对象? 2. 把sql方法(insert,update..)放到DatabaseHelper类中对吗??
    • 只需创建 DatabaseHelper 的实现并在所有活动中使用此类。
    【解决方案2】:

    让您的DatabaseHelper 在整个应用程序生命周期中成为单例。查看我关于该主题的博文:

    Correctly Managing Your SQLite Database

    【讨论】:

    • 嗨,谢谢,伟大的博客!我知道如何用单例编写 DatabaseHelper,我做到了。现在我在程序中的什么地方编写了 sql 方法(插入、更新..)?我试图打开新的 SqlService 类,但我不能从那里(上下文)使用 DatabaseHelper 我应该在哪里编写我的 sql 代码?什么是正确的设计?谢谢
    • 使用DatabaseHelper mHelper = DatabaseHelper.getInstance(context) 获取单例DatabaseHelper 实例。然后使用SQLiteDatabase db = mHelper.getWriteableDatabase(或getReadableDatabase)。然后你可以打电话给db.insert(...)db.update(...)等。我当然假设你的DatabaseHelperextends SQLiteOpenHelper
    • 是的,我扩展了 SQLiteOpenHelper。 db.insert(...), db.update(..),..etc 我在我的 Activity 类上实现?? exmp:如果我有 3 个 Activity 类,我会在我需要的每个 Activity 中实现 db.insert 吗?或者我打开另一个包含所有这些实现的类?
    猜你喜欢
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 2011-03-08
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多