我有一个InputStream
对象
InputStream _fileInput;
我想把它发送到另一个活动,让我们说:
Intent intent = new Intent(MainActivity.this, ChildActivity.class);
我该怎么做?
答案 0 :(得分:1)
您无法通过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();
}
}
Imho这不是最好的解决方案,但它仍然是一些东西,以为我从来没有在活动之间传递像InputStream这样的东西..
如果我可以问,你为什么需要这个?
<小时/> 解决方案2 - 使用帮助程序类
您可以使用 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();