2012-12-16 10 views
7

मैं बंडल के माध्यम से एक गतिविधि में एक रननेबल पास करना चाहता हूं, ताकि चलने योग्य चलने पर चलने योग्य चलाना चाहिए। मैंने एक कक्षा लिखी जो सीरियलज़ेबल लागू करता है लेकिन यह अपवाद का कारण बनता है: "java.lang.RuntimeException: Parcelable encountered IOException writing serializable object"। मेरे कोड यहाँ जाता है:बंडल में एक रननेबल कैसे रखा जाए?

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

यह सिर्फ उद्देश्य यह है कि धारावाहिक हैं की सामग्री है। आप एक रननेबल को क्रमबद्ध करना क्यों चाहते हैं, जो अपशिष्ट दिखता है। \t 'निजी शून्य readObject (ObjectInputStream aInputStream) \t \t \t, फेंकता ClassNotFoundException IOException { \t \t: तुम हमेशा एक और runnable कि इस डेटा और इस प्रक्रिया को ले जाएगा करने के लिए सिर्फ डेटा पारित कर सकते हैं – nandeesh

उत्तर

0

यह Runnable की तरह लग रहा serializable नहीं है। अपने स्वयं के क्रमिकरण को लागू करने के लिए आपको अपने द्वारा readObject और writeObject लागू करना होगा।

चेक here

+0

मैं दो तरीकों सिर्फ इस तरह जोड़ा aInputStream.defaultReadObject(); \t} \t निजी शून्य writeObject (ObjectOutputStream aOutputStream) \t \t \t फेंकता IOException { \t \t aOutputStream.defaultWriteObject(); \t} ' लेकिन वही त्रुटि जारी है। –

संबंधित मुद्दे