0

我的项目中有两个活动类,第三个类是Thread.

Thread类实现Bluetooth Socket不是Parcelable.

First Activity开始Second Activity使用startActivityforResult()

Second Activity创建Thread类的对象并启动线程。

我需要将 Thread 对象的对象引用从 to 传递Second Activity给,First Activity's onActivityResult()以便我可以从第一个活动中访问 Thread 对象。

我怎样才能做到这一点?

4

2 回答 2

2

你有几个选择。

您可以将对象分解为简单的数据类型,并将这些值作为附加值放在您传递回的意图上setResult(),这样做您会使用intent.putExtra(key, value)

或者您可以让您的数据对象实现Parcelable接口,以便您可以将数据对象直接添加到意图中。

执行后者的代码看起来像这样

Intent resultIntent = new Intent();
resultIntent.putExtra("resultObject", mObj);
setResult(ACTION_OK, resultIntent);

然后在您的 onActivityResult 中,您可以像这样将其拉出:

data.getParcelableExtra("resultObject");

要使后一种方法起作用,您需要使用数据对象正确实现 parcelable。但是,前一种方法不需要这样做,因为您将只传回简单的值。然后,您必须采用这些简单的值并“重新膨胀”另一侧的数据对象。

于 2013-02-14T16:08:12.003 回答
0

我认为实现这一目标的最佳方法是使用单例。您只能将原语存储在 Shared Preferences 和 Bundles 中。这是创建单例的一个很好的参考。

http://www.javaworld.com/javaworld/jw-04-2003/jw-0425-designpatterns.html

于 2013-02-14T16:07:46.713 回答