【发布时间】:2016-07-21 13:32:45
【问题描述】:
我有一个InputStream 对象
InputStream _fileInput;
我想把它发送到另一个活动,比如说:
Intent intent = new Intent(MainActivity.this, ChildActivity.class);
我该怎么做?
【问题讨论】:
标签: android android-intent inputstream
我有一个InputStream 对象
InputStream _fileInput;
我想把它发送到另一个活动,比如说:
Intent intent = new Intent(MainActivity.this, ChildActivity.class);
我该怎么做?
【问题讨论】:
标签: android android-intent inputstream
你不能通过Intent 传递它,也不能作为Extra(因为它不是Parcelable)你可以在你的MainActivity 中创建一个公共的getter 方法并在你的ChildActivity 中调用它。 .
示例代码:
class MainActivity {
private static InputStream mInputStream;
@Override
protected onCreate(...) {
mInputStream = new InputStream(.....);
Intent i = new Intent(MainActivity.this, ChildActivity.class);
startActivity(i);
}
public static getInStream() {
return mInputStream;
}
}
class ChildActivity {
@Override
protected onCreate(...) {
InputStream theInputStream = MainActivity.getInStream();
}
}
恕我直言,这不是最好的解决方案,但它仍然是一些东西,我以为我永远不会在活动之间传递像 InputStream 这样的东西..
如果我可以问,你为什么需要这个?
您可以使用 Singleton Helper 类来轻松跟踪您需要的对象。
类助手将是:
class Helper {
private static Helper mHelper;
private InputStream mInputStream;
private Helper(){
}
public static Helper getInstance() {
if (mHelper != null)
return mHelper;
return new Helper();
}
public void setInputStreamer(InputStream is){
mInputStream = is
}
public InputStream getInputStreamer(){
return mInputStream
}
}
然后在您的MainActivity 电话中:
is = new InputStream(...);
Helper.getInstance().setInputStreamer(is);
Intent i = new Intent(MainActivity.this, ChildActivity.class);
startActivity(i);
在您的ChildActivity 电话中:
InputStream theInputStream = Helper.getInstance().getInputStreamer();
【讨论】: