我的项目中有两个活动类,第三个类是Thread
的子类。
Thread
类实现Bluetooth Socket
,而不是Parcelable
。
First Activity
使用Second Activity
startActivityforResult()
Second Activity
创建Thread
类的对象并启动线程。
我需要将Thread对象的对象引用从Second Activity
传递给First Activity's onActivityResult()
,以便我可以从第一个活动访问Thread对象。
我怎样才能做到这一点?
答案 0 :(得分:2)
您有几个选择。
您可以将对象细分为简单数据类型,并将这些值作为额外内容放在您使用setResult()
传回的意图上,这样做就可以使用intent.putExtra(key, value)
或者您可以使您的数据对象实现Parcelable接口,以便您可以将数据对象直接添加到意图中。
执行后者的代码看起来像这样
Intent resultIntent = new Intent();
resultIntent.putExtra("resultObject", mObj);
setResult(ACTION_OK, resultIntent);
然后在你的onActivityResult中你可以像这样把它拉出来:
data.getParcelableExtra("resultObject");
要使后一种方法起作用,您需要正确地对数据对象实现parcelable。然而,前一种方法不需要这样做,因为您只会传回简单值。然后,您必须采用这些简单的值并在另一侧“重新充气”数据对象。
答案 1 :(得分:0)
我认为实现这一目标的最佳方法是使用单身人士。您只能在共享首选项和分发包中存储基元。这是创建单身人士的一个很好的参考。
http://www.javaworld.com/javaworld/jw-04-2003/jw-0425-designpatterns.html