我需要在应用程序的不同 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 可以在其状态更改为暂停后随时被销毁。此外,如果整个应用程序被系统杀死,您的静态变量可能会被删除,这种情况经常发生。然后你会得到 p>
NullPointerException
尝试访问您的数据。
如果您确实想使用静态成员,请在中处理它们的初始化
Application
类构造函数,因此它们将在应用程序启动时重新创建,并被杀死。
但总的来说,这在 Android 中并不是一个好的做法。
关于java - 可以使用静态属性在应用程序中移动数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23791242/