Экземпляр посылки интерфейса, который наследуется в Activity - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть действие, которое наследует интерфейс, скажем CommonListener, я передаю этот экземпляр интерфейса с помощью ключевого слова this другому классу, и этот класс сериализует полученный экземпляр, так как Activity отправляет свой экземпляр, я получаю cra sh когда я пытаюсь отправить экземпляр

например:

class MyActivity : AppCompatActivity(), CommonListener {


    override fun onCreate(savedInstanceState: Bundle?) {
      MyClass(this, this).start()
    }

}


class MyClass(private val listener: CommonListener,
              private val context:Context){

   fun start(){
      val intent = Intent(context, AnotherClass.class)
      intent.putSerializable("MyKey", listener)
      context.startActivity(intent)
   }
}


interface CommonListener:Serializable {

}

Cra sh log

 java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.package.MyActivity)
        at android.os.Parcel.writeSerializable(Parcel.java:1833)
        at android.os.Parcel.writeParcelable(Parcel.java:1801)
        at android.os.Parcel.writeValue(Parcel.java:1707)
        at android.os.Parcel.writeArrayMapInternal(Parcel.java:928)
        at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1584)
        at android.os.Bundle.writeToParcel(Bundle.java:1253)
        at android.os.Parcel.writeBundle(Parcel.java:997)
        at android.content.Intent.writeToParcel(Intent.java:10495)
        at android.app.IActivityTaskManager$Stub$Proxy.startActivity(IActivityTaskManager.java:3823)
        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1705)
        at android.app.Activity.startActivityForResult(Activity.java:5192)
        at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:676)
        at android.app.Activity.startActivityForResult(Activity.java:5150)
        at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:663)

Пожалуйста, дайте мне знать, если существует какое-либо решение для этой проблемы

Примечание: если я передам экземпляр интерфейса как анонимный, он будет работать.

...