در اندروید تمام ویوها و عمل ها بر روی Activity انجام میشه از مهمترین چیز هاییه که یک برنامه نویس اندروید باید کار باهاش رو یاد بگیره.
متاسفانه ما به صورت خیلی ساده نمیتونیم بین Activity ها شی ها رو انتقال بدیم. و برای این کار اشیا باید حتما یکی از interface های Parcelable یا Serializable رو پیاده سازی کنه.
اینکه در چه شرایطی باید کدومشون رو استفاده کرد رو در این مقاله با هم بررسی میکنیم هر کدومشون خوبیها و بدی های خودشون رو دارند پس با ما همراه باشید.
Serializable:
یک interface استاندارد توی زبان جاوا هست که تنها با ارث بری کردن از آن میتوانید این ویژگی را به کلاس خود انتقال دهید. مشکل این روش این است که از بازتاب (reflection) استفاده می شود که روش کندی است. این روش اشیاء موقت زیادی ایجاد می کند و باعث جمع آوری زباله های بسیار زیادی می شود. با این حال interface (واسط) Serializable برای پیاده سازی خیلی ساده تر است.
به مثال زیر توجه کنید:
Parcelable:
به مثال زیر توجه کنید:
نتیجه گیری:
روش Parcelable سریعتر از رابط Serializable است.
واسط Parcelable در مقایسه با واسط Serializable زمان بیشتری برای پیاده سازی نیاز دارد.
واسط Serializable تعداد زیادی از اشیاء موقت را ایجاد می کند و باعث جمع آوری زباله های زیادی می شود
در Serializable ها برای ماندگاری داده ها بهتر هستند، از طرف دیگر اشیاء parcelable به هیچ وجه نباید در حافظه ماندگار شوند.