将复杂对象传递给Activity

时间:2011-11-10 23:10:15

标签: android android-activity

我正在使用蓝牙应用程序,我有一个线程收听输入消息,以及2个活动:主菜单和蓝牙控制台。我在菜单Activity中进行连接,然后我需要将一些对象传递给控制台Activity:

  • 使用其write()方法的线程引用
  • 主要活动的上下文
  • 和布尔我需要检查eventualy

我读到了使用Intent.putExtra并传递可序列化的o parceable类对象。我写了一个包含我需要传递的对象的类,但我不知道如何做到这一点,甚至不知道可序列化和可分割的对象。

是否有任何简单的方法将这些对象从Activity传递给另一个?

2 个答案:

答案 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());
相关问题