java - 可以使用静态属性在应用程序中移动数据吗?

标签 java android variables properties static

我需要在应用程序的不同 Activity 中访问一些自定义对象。为此目的并为了可访问性,我一直使用静态属性将数据从一个 Activity 移动到另一个 Activity 。
例如我有以下类(class):

public class TrackItem {
    public String title, imageUrl, mediaUrl, type, artist, desc;
    public static TrackItem track;
}

开始一项 Activity :

TrackItem.track = items.get(i); // 'items' is an arraylist defined elsewhere
Intent trackActivity = new Intent(c, TrackActivity.class);
startActivity(trackActivity);

现在在 TrackActivity 中,我可以轻松访问 TrackItem.track 并使用它的属性。
我只需要知道我是否犯了错误?有没有更好的方法来做到这一点?

最佳答案

处理这个问题的android方法是让你的类

Parcelable

并将其与 Intent 从一个 Activity 传递到另一个 Activity 。

如果您在 Activity 中初始化静态变量,请注意丢失数据,因为在 Android 中,Activity 可以在其状态更改为暂停后随时被销毁。此外,如果整个应用程序被系统杀死,您的静态变量可能会被删除,这种情况经常发生。然后你会得到

NullPointerException

尝试访问您的数据。

如果您确实想使用静态成员,请在中处理它们的初始化

Application

类构造函数,因此它们将在应用程序启动时重新创建,并被杀死。

但总的来说,这在 Android 中并不是一个好的做法。

关于java - 可以使用静态属性在应用程序中移动数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23791242/

相关文章:

java - JTableCell 中的图像图标

java - Shanks 算法在某组数字上神秘地失败了

java - java中的字符串操作以获取另一个字符串

android - 单击更改 ListView 项目的图像

android - 为什么 SharedPreferences 访问时间会在 Internet 可用时增加? - 安卓

python - 如何计算 python 中两个不同列表中的元素?

php 不会更新 UPDATE QUERY

java - 可插入类型检查器和检查器框架,真的需要所有这些设置吗?

android - 从左向右滑动时,无论在哪里,如何显示DrawerLayout?

java - 公共(public)静态变量和私有(private)静态变量之间的区别