在安卓应用程序中的活动之间共享单个类实例?



我正在Android Studio中创建一个Android应用程序,我正在用Java编码。

我的应用程序将有一个处理与SQLite数据库连接的类,它还将具有抽象访问数据库的类,即朋友列表和按朋友排序的发送和接收的消息列表。

我目前有三个活动,主要活动,一个用于所有朋友的列表,一个用于显示特定的聊天对话。

我的问题是在我的活动之间共享类(即数据库类(和其他类(例如朋友管理器(的实例的最佳实践是什么。我宁愿不为每个活动复制这些类,而是在应用程序的生命周期内保留一个实例。

一个例子是"FriendManager"类,它具有提供朋友列表,删除和添加新朋友等的接口。我想在创建所有朋友的列表时使用它,但也想在显示对话时使用它,因为它将包含对"MessageManager"类的引用,该类负责从数据库(和远程位置(加载消息。

一种方法是使用单例模式,如模式 1 所示 https://www.androiddesignpatterns.com/2012/05/correctly-managing-your-sqlite-database.html

虽然Google的最佳实践不是直接使用SQLite,而是通过数据库室使用。 https://developer.android.com/training/data-storage/room/index.html

他们仍然说

如果应用在单个进程中运行,则在实例化 AppDatabase 对象时应遵循单一实例设计模式。每个 RoomDatabase 实例都相当昂贵,您很少需要在单个进程中访问多个实例。

然后在他们的示例中以与单例模式相同的方式实现它 如 https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#6 所示

最新更新