我正在 Android Studio 中创建 Android 应用程序,并使用 Java 进行编码。
我的应用程序将有一个处理与 SQLite 数据库的连接的类,它还将有抽象访问数据库的类,即 friend 列表以及按 friend 排序的发送和接收的消息列表。
我目前有三项 Activity ,即主要 Activity ,一项用于所有 friend 的列表,一项用于显示特定的聊天对话。
我的问题是在我的 Activity 之间共享类(即数据库类)和其他类(例如 friend 经理)的实例的最佳实践是什么。我不想为每个 Activity 复制这些类,而是在我的应用程序的生命周期中保留一个实例。
一个例子是“FriendManager”类,它具有提供 friend 列表、删除和添加新 friend 等的接口(interface)。我想在创建所有 friend 列表时使用它,而且在创建所有 friend 列表时使用它显示对话,因为它将保存对“MessageManager”类的引用,该类负责从数据库(和远程位置)加载消息。
最佳答案
一种方法是使用单例模式,如 https://www.androiddesignpatterns.com/2012/05/correctly-managing-your-sqlite-database.html 中的模式 1 所示。
虽然 Google 的最佳实践不是直接使用 SQLite,而是通过 Database Rooms https://developer.android.com/training/data-storage/room/index.html
他们仍然说
If your app runs in a single process, you should follow the singleton design pattern when instantiating an AppDatabase object. Each RoomDatabase instance is fairly expensive, and you rarely need access to multiple instances within a single process.
然后在他们的示例中以与单例模式相同的方式实现它 如https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#6中所示
关于java - 在android应用程序的 Activity 之间共享类的单个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59594967/