私と同様のトピックがあることは知っていますが、それらのどれも私の状況に対処するのに役立ちません.
内部にシリアル化された非静的クラスを含むクラスがあります。デバイスの「ホーム」キーを押しているときにクラッシュが発生しています(アプリはバックグラウンドになります)
これは私のコードです
public class pageParam implements Serializable {
private static final long serialVersionUID = 7793437011565026799L;
public OnCloseListener onCloseListener;
public long userId;
public boolean hasName;
public int age;
public pageParam(OnCloseListener onCloseListener, long userId,
boolean userId, int age) {
this.onCloseListener = onCloseListener;
this.userId = userId;
this.hasName = hasName;
this.age = age;
}
}
と
public abstract class OnCloseListener implements Serializable {
private static final long serialVersionUID = -143252315312L;
public abstract void onCloseListener();
}
OnCloseListener は抽象的であり、OnCloseListener の実装に serialVersionUID を追加する可能性があることに注意してください (実行してもしなくても、失敗します)。
編集:
これは OnCloseListener() の実装です:
OnCloseListener OnCloseListener = new OnCloseListener() {
/**
*
*/
private static final long serialVersionUID = -8848214522109319925L;
@Override
public void OnCloseListener() {
......
}
}
ご覧のとおり、シリアルキーも付いています。
編集2:
OnCloseListener を通常のクラス (abstract ではない) に変更した後でも、この例外エラーが発生します。
public class OnCloseListener は Serializable を実装します {
/**
*
*/
private static final long serialVersionUID = 2718040340149001112L;
public void OnClose() {
......
}
}
OnClose() 内のコードと関係があるのでしょうか? 私は上流階級でいくつかの操作を行っています。