[英]Passing array of objects from activity to service via intent
我正在努力如何按意图将包含对象的数组从活动传递到服务。 调试后我可以说我的服务甚至没有启动,因为错误java.lang.RuntimeException: Parcel: unable to marshal value (Item(id=0, data=2023-01-02T02:07:11.051, message=123, isValid =假。
listViewModel.itemList.observe(this) {
listAdapter.setList(it)
recyclerView.adapter = listAdapter
val i = Intent(this, FileService::class.java)
val bundle = Bundle()
bundle.putSerializable("data", it)
i.putExtras(bundle)
startService(i)
}
和我的数据 class
@Serializable
data class Item(val id: Int,
val data: LocalDateTime? = Clock.System.now().toLocalDateTime(TimeZone.UTC),
val message: String,
var isValid: Boolean? = false)
如您所见,我没有使用 parcelable。 我不知道该怎么做。 我试过没有捆绑的选项。
您收到此错误是因为您使用了 @Serializable 而不是 Serializable class。
您需要使项目 class 可序列化。 要使项目 class 可序列化,我必须在 class 的末尾添加:Serializable 以使其成为可序列化的。 像这样
class ExampleClass(val price: Double, val discountedPrice: Double) : Serializable
确保像这样导入 Serializable
import java.io.Serializable
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.