我正在使用蓝牙应用程序,我有一个线程收听输入消息,以及2个活动:主菜单和蓝牙控制台。我在菜单Activity中进行连接,然后我需要将一些对象传递给控制台Activity:
我读到了使用Intent.putExtra并传递可序列化的o parceable类对象。我写了一个包含我需要传递的对象的类,但我不知道如何做到这一点,甚至不知道可序列化和可分割的对象。
是否有任何简单的方法将这些对象从Activity传递给另一个?
答案 0 :(得分:1)
您可以扩展Application
并将共享对象放入该类。类似的东西:
public class MyApplication extends Application {
private boolean myBoolean;
public boolean getMyBoolean() { return myBoolean; }
}
您可以在此处放置任何想要使用全局变量的内容。
要将应用程序的应用程序设置为MyAPplication,请使用AndroidManifest.xml
<application ... android:name=".MyApplication">
答案 1 :(得分:0)
简而言之。否。活动彼此隔离,因为它们可以跨越进程,因此唯一可移植的选项是序列化它们。但是您可以使用像Flexjson这样的库来使用Intent.putExtra()来序列化普通的旧Java Bean。比使用Parcel手写序列化要简单得多。查看:http://flexjson.sourceforge.net
Android中存在一个错误,您必须执行以下操作:
/** Fix for Android bug http://code.google.com/p/android/issues/detail?id=5697 */
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());