Android在活动之间传递大对象的最佳实践是什么?
我想在两个活动之间传递一个大对象(可包裹),最佳做法是什么?由于包裹的限制,我无法使用Intent:Android在活动之间传递大对象的最佳实践是什么?,android,android-intent,kotlin,sharedpreferences,parcelable,Android,Android Intent,Kotlin,Sharedpreferences,Parcelable,我想在两个活动之间传递一个大对象(可包裹),最佳做法是什么?由于包裹的限制,我无法使用Intent: android.os.TransactionTooLargeException: data parcel size 1002388 bytes 那么,这方面的最佳实践是什么呢?最佳实践是不通过活动或事务片段传递整个对象。更好的方法是将文件保存到DB或任何本地文件夹中,并将指向对象的链接(从DB或URI到文件的id)传递给Acitvity/Fragment 最佳实践是不通过活动或事务片段传递整个
android.os.TransactionTooLargeException: data parcel size 1002388 bytes
那么,这方面的最佳实践是什么呢?最佳实践是不通过活动或事务片段传递整个对象。更好的方法是将文件保存到DB或任何本地文件夹中,并将指向对象的链接(从DB或URI到文件的id)传递给Acitvity/Fragment
最佳实践是不通过活动或事务片段传递整个对象。更好的方法是将文件保存到DB或任何本地文件夹中,并将指向对象的链接(从DB或URI到文件的id)传递给Acitvity/Fragment
不要有两种活动。有一个活动和两个片段。或者,由两个活动都使用的某种单例存储库仔细管理对象。我同意@commonware的观点,最好的处理方法可能是将数据分解为小片段。您可以在将数据与UI组件分离时使用
ViewModel
。不要有两个活动。有一个活动和两个片段。或者,由两个活动都使用的某种单一存储库仔细管理对象。我同意@commonware的观点,最好的处理方法可能是将数据分解为小片段。您可以使用ViewModel
将数据与UI组件分离。即使这个答案可行,它依赖于很多东西。只有在已经存在任何形式的持久性(文件、数据库等)并且对象可以唯一识别的情况下,它才有效。尽管这个答案有效,但它依赖于很多东西。它只有在已经存在任何形式的持久性(文件、数据库等)并且可以唯一标识对象的情况下才有效
val intent = Intent(this, MainActivity::class.java)
intent.putExtra(EXTRA_KEY_FILE_ID, fileId)
startActivity(intent)