Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android在活动之间传递大对象的最佳实践是什么?_Android_Android Intent_Kotlin_Sharedpreferences_Parcelable - Fatal编程技术网

Android在活动之间传递大对象的最佳实践是什么?

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 最佳实践是不通过活动或事务片段传递整个

我想在两个活动之间传递一个大对象(可包裹),最佳做法是什么?由于包裹的限制,我无法使用Intent:

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)