【问题标题】:Android Project Lifecycle - before Activity Lifecycle ( Activity.onCreate() )Android 项目生命周期 - 在 Activity 生命周期之前 ( Activity.onCreate() )
【发布时间】:2017-01-23 01:09:41
【问题描述】:

我希望在我目前正在处理的 Android 项目中实现 SQLite 数据库。令我惊讶的是,创建它的唯一方法似乎是在活动代码本身中。 (我上次使用 Java 和本地数据库的经验是使用 Derby,这是我没有在代码中创建的本地文件。)

我的问题是,在第一个 Activity 的 onCreate() 之前有什么可以利用的吗?我将把它与 Windows 窗体应用程序联系起来,您可以在其中访问 Main()启动表单(活动等效)。

如果我必须在程序代码中创建数据库,我想在活动开始之前检查它是否已经存在,仅一次。

【问题讨论】:

  • 您可以有一个单独的 Launcher 活动来执行检查,然后启动您的主要活动。
  • 可以使用Application的onCreate方法
  • @Androiderson 我相信这就是我要找的。如果你想用那个来回答这个问题,我会把它作为公认的答案。
  • @JoshuaSchlichting 完成。我很高兴它有帮助!

标签: android sqlite android-activity android-lifecycle activity-lifecycle


【解决方案1】:

您可以使用应用程序的onCreate 方法在应用程序启动时(即在任何活动之前)运行任何代码。

【讨论】:

    【解决方案2】:

    有,但你不需要。 SQLite 数据库(内置于 Android 中)只是本地文件系统上的文件。现在,您通常通过 ORM 层或通过 SQliteOpenHelper(它们是数据库的 Java 接口)来访问它们。当你打开它时,你只需告诉它文件在哪里。通常你有一个开放帮助器或 ORM 层类的单例,所以没有每个 Activity 的设置——你只需在构造函数中抛出你需要的任何东西,然后让单例在任何最终创建它的 Activity 中处理它。

    【讨论】:

      【解决方案3】:

      recommended way of using a database 是使用SQLiteOpenHelper,它会在您第一次尝试访问它时自动创建它。 (并且还处理更新。)

      【讨论】:

        猜你喜欢
        • 2013-04-06
        • 2013-07-10
        • 1970-01-01
        • 2019-02-02
        • 1970-01-01
        • 2015-05-13
        • 1970-01-01
        • 1970-01-01
        • 2018-07-18
        相关资源
        最近更新 更多