Android Parcel并传递一个带有Listener的对象

Nic*_*oso 2 android parcelable android-intent

有什么方法可以传递一个有View.OnClickListener的Parcelable(通过Intent)吗?

基本上我希望能够从任何地方启动一个常见的Actvity,并通过OnClickListener传递一个在Activity上定义的按钮.

或者我不需要发送OnClickListener,它可以只是一个固定的OnClickListener可以回调的自定义接口实现,问题是我看不到任何方式来包裹任何类似回调(以后可以使用的方法)叫)

我曾尝试过以下方法

  destParcel.writeValue(mListener)
Run Code Online (Sandbox Code Playgroud)

但它抛出了以下内容

  java.lang.RuntimeException: Parcel: unable to marshal value
Run Code Online (Sandbox Code Playgroud)

那么有没有写一个可包含的回调?

Com*_*are 6

有什么方法可以传递一个有View.OnClickListener的Parcelable(通过Intent)吗?

没有任何有意义的方式.Parceling是按值复制,而不是按引用复制,因此它与接收端的发送方不同.

基本上我希望能够从任何地方启动一个常见的Actvity,并通过OnClickListener传递一个在Activity上定义的按钮.

使用活动巴士(Square's Otto,greenrobot的EventBus LocalBroadcastManager等).

或者,使用PendingIntent.

或者,使用Messenger.

或者,使用a ResultReceiver,这是最接近"parcellable callback"的东西.