2012-12-16 18 views
7

Chcę przekazać Runnable do działania za pośrednictwem pakietu, tak że runnable musi działać, gdy onCreate uruchamia się. Napisałem klasę, która implementuje Serializable, ale powoduje wyjątek: "java.lang.RuntimeException: Parcelable encountered IOException writing serializable object". Mój kod idzie tutaj:Jak umieścić runnable w pakiecie?

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

to tylko zawartość obiektu, które są w odcinkach. Dlaczego chcesz serializować runnable, który wygląda na marnotrawstwo. zawsze można przekazać tylko dane do innego Runnable, który odbędzie te dane i proces – nandeesh

Odpowiedz

0

Wygląda Runnable nie jest możliwy do serializacji. Aby zaimplementować własną serializację, musisz samodzielnie wdrożyć readObject i writeObject.

Sprawdź here

+0

dodałem dwie metody po prostu tak: \t 'private void readObject (ObjectInputStream aInputStream) \t \t \t rzuca ClassNotFoundException, IOException { \t \t aInputStream.defaultReadObject(); \t} \t prywatny nieważne writeObject (ObjectOutputStream aOutputStream) \t \t \t wyrzuca IOException { \t \t aOutputStream.defaultWriteObject(); \t} ' , ale ten sam błąd występuje nadal. –