0

私と同様のトピックがあることは知っていますが、それらのどれも私の状況に対処するのに役立ちません.

内部にシリアル化された非静的クラスを含むクラスがあります。デバイスの「ホーム」キーを押しているときにクラッシュが発生しています(アプリはバックグラウンドになります)

これは私のコードです

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() 内のコードと関係があるのでしょうか? 私は上流階級でいくつかの操作を行っています。

4

0 に答える 0