gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 16:37:55 24 4
gpt4 key购买 nike

我需要在应用程序的不同 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/

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