gpt4 book ai didi

java - 在 Activity 之间传递对象和/或对象列表的有效方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:51 25 4
gpt4 key购买 nike

我是 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 中保持播放列表对象列表和歌曲对象列表可用,并找到了以下解决方案:

  1. 制作一个 Gson 并将其保存到sharedPref 文件(这似乎不是一个好主意,因为我将不断保存和写入。)

  2. 我还阅读了有关使用 sqllite 的内容。但我不明白它的意义,因为我会将大多数歌曲作为 JSON 对象获取,并使用该对象创建一个歌曲实例。

  3. 我将播放列表实现为 parceable,以便能够通过 Intent 传递列表,但这似乎不是最好的方法,因为每次发生更改时我都必须更新共享首选项。

任何人都可以指出我应该遵循的正确方向,或者为列表创建单例似乎是最有效的方法。 (全局单例,因此 android 不会在 onDestroy() 上销毁对象)

谢谢

最佳答案

  • SQLite 将是正确的方法,在启动期间存储数据,但如果您只想在应用程序处于 Activity 状态时保留数据,则不合适。
  • 您可以使用全局单例,它无疑是最简单的解决方案
  • 替代方案可能是Eventbus系统:每个组件都存储数据的副本。一个组件负责更新数据。如果有可用更新,它会通过事件总线通知所有其他组件。考虑到设计模式,这可能是最好的解决方案

关于java - 在 Activity 之间传递对象和/或对象列表的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36438270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com