【发布时间】:2017-09-11 17:05:23
【问题描述】:
我正在尝试序列化摘要并将其传递给活动,但我收到错误 java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.example.MainActivity$1)。
MainActivity.java
public class MainActivity extends Activity {
private static final String AUTO_EXTRA = "AUTO_EXTRA";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RelativeLayout l = new RelativeLayout(this);
l.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
new Setup.auto(this) {
@Override
public void onFailure(String message) {
}
};
}
}
Setup.java
public static class Setup {
public static abstract class auto implements FailedAuto, Serializable {
public auto(Activity activity) {
auto a = (auto) this;
Intent i = new Intent(activity, AutoSetup.class);
i.putExtra(AUTO_EXTRA, a); // Error happens here.
activity.startActivity(i);
}
}
private class AutoSetup extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
((auto) getIntent().getSerializableExtra(AUTO_EXTRA)).onFailure("Message");
}
}
private interface FailedAuto {
void onFailure(String message);
}
}
我有两个类,MainActivity 和 Setup,当我运行代码时,我在行 i.putExtra(AUTO_EXTRA, a); 上得到错误。我发现序列化 MainActivity 解决了这个问题,但我不希望 MainActivity 成为Serializable,我不明白为什么它认为我正在序列化 MainActivity。我在这里做错了什么?
【问题讨论】:
标签: java android serialization