2012-12-16 32 views
7

Tôi muốn chuyển một Runnable vào một hoạt động thông qua bó, do đó runnable phải chạy khi onCreate cháy. Tôi đã viết một lớp mà thực hiện Serializable nhưng nó gây ra ngoại lệ: "java.lang.RuntimeException: Parcelable encountered IOException writing serializable object". Mã của tôi ở đây:Làm thế nào để đặt một runnable vào bó?

package some.company.common; 

import java.io.Serializable; 

public class SerializedRunnable implements Serializable, Runnable { 

    private static final long serialVersionUID = 6641813629033240205L; 

    public SerializedRunnable() { 
    } 

    private Runnable runnable; 

    public SerializedRunnable(Runnable runnable) { 
     this.runnable = runnable; 
    } 

    @Override 
    public void run() { 
     this.runnable.run(); 
    } 

} 
+2

nó chỉ là nội dung của đối tượng được tuần tự hóa. Tại sao bạn muốn serialize một runnable, mà có vẻ là một sự lãng phí. bạn luôn có thể vượt qua chỉ là dữ liệu đến một Runnable sẽ đưa dữ liệu này và quá trình – nandeesh

Trả lời

0

Dường như Runnable không thể tuần tự hóa được. Để thực hiện serialization của riêng bạn, bạn phải tự mình thực hiện readObjectwriteObject.

Kiểm tra here

+0

tôi bổ sung thêm hai phương pháp chỉ như thế này: \t 'private void readObject (ObjectInputStream aInputStream) \t \t \t ném ClassNotFoundException, IOException { \t \t aInputStream.defaultReadObject(); \t} \t private void writeObject (ObjectOutputStream aOutputStream) \t \t \t throws IOException { \t \t aOutputStream.defaultWriteObject(); \t} ' nhưng lỗi tương tự vẫn tiếp tục. –

Các vấn đề liên quan