簡體   English   中英

通過意圖將對象數組從活動傳遞到服務

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM