我知道如果我想从Activity A
向Activity B
发送自定义对象O,我必须使对象O
实现Parcelable.
但是,目前我的对象O
有很多种类型的字段。
在这种情况下,我可以使用单身人士吗?
例如,
1. in Activity B, I create a public static Object o;
2. in Activity A, I do
B.o = ObjectToSend;
startActivity(intent for B);
3. in Activity B's onCreate(), I do
O o = B.o;
if o is not null, use o..
这种方法有问题吗? 谢谢
答案 0 :(得分:1)
你可以让它可序列化吗? (如果是这样,请查看此问题以获取示例:Pass serializable object throught intent)
如果你真的想采用“静态”方法,我会考虑使用Application的子类,它更专门用于处理应用程序状态,这是你试图传递的。如果是这样,谷歌“Android自定义应用程序类”,你会得到一些非常好的博客和关于使用它的帖子。
的一个体面的说明答案 1 :(得分:1)
假设没有其他线程可以改变这些变量,它将以这种方式工作,但将Singleton分离到它自己的类中通常更常见(例如)
public class ObjectSingleton{
private static ... someobject;
//getters and setters
}
因此,围绕它包装线程安全代码更容易。
答案 2 :(得分:0)
您可以继承自己的Application
类,并使您的对象成为该类的字段。只要您的程序正在运行,您的Application
子类就会存在,因此您的对象将始终存在。