我是 Android 新手,正在我的一门类(class)中学习良好的设计模式。我正在开发一个应用程序作为我的项目的一部分,但我遇到了一些设计问题,并试图找出应该遵循的良好模式。
我有以下类(class)
public class Playlist {
ArrayList<Song> songs = new ArrayList<Song>();
//..getters and setters and song to list
}
public class Song {
private String name;
private String artist;
private String File;
//Getters and setters
}
在整个应用程序中,我将拥有一个包含所有创建的播放列表的 ArrayList 和 所有可用歌曲的 ArrayList。
应用程序最终将下载一个 JSON 对象并为该对象创建一个 Song 类的实例。
我一直在研究如何在所有 Activity 中保持播放列表对象列表和歌曲对象列表可用,并找到了以下解决方案:
制作一个 Gson 并将其保存到sharedPref 文件(这似乎不是一个好主意,因为我将不断保存和写入。)
我还阅读了有关使用 sqllite 的内容。但我不明白它的意义,因为我会将大多数歌曲作为 JSON 对象获取,并使用该对象创建一个歌曲实例。
我将播放列表实现为 parceable,以便能够通过 Intent 传递列表,但这似乎不是最好的方法,因为每次发生更改时我都必须更新共享首选项。
任何人都可以指出我应该遵循的正确方向,或者为列表创建单例似乎是最有效的方法。 (全局单例,因此 android 不会在 onDestroy() 上销毁对象)
谢谢
最佳答案
- SQLite 将是正确的方法,在启动期间存储数据,但如果您只想在应用程序处于 Activity 状态时保留数据,则不合适。
- 您可以使用全局单例,它无疑是最简单的解决方案。
- 替代方案可能是Eventbus系统:每个组件都存储数据的副本。一个组件负责更新数据。如果有可用更新,它会通过事件总线通知所有其他组件。考虑到设计模式,这可能是最好的解决方案。
关于java - 在 Activity 之间传递对象和/或对象列表的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36438270/