activity lifecycle

activity lifecycle

چرخه حیات Activity در زامارین

تداوم پیچیدگی اطلاعات

علاوه بر تداوم دیتا در bundle، اندروید ذخیره اطلاعات را با override کردن OnRetainNonConfigurationInstance و بازگشت نمونه از Java.Lang.Object که شامل تداوم دیتا می شود را پشتیبانی می کند.
2 هدف اصلی برای ذخیره حالت با استفاده از OnRetainNonConfigurationInstance وجود دارد:
1- آبجکت برگشت داده شده از OnRetainNonConfigurationInstance در مقیاس بزرگ و دیتا تایپ های پیچیده به خوبی انجام می شود و دلیل آن این است که حافظه آبجکت را بر می گرداند.
2- متد OnRetainNonConfigurationInstance طبق نیاز و تقاضا فراخوانی می شود که مقرون به صرفه تر از استفاده از یک کش دستی است.
استفاده از OnRetainNonConfigurationInstance برای سناریوهایی که برگرداندن دیتا در چندین دفعه هزینه بر است مانند فراخوانی وب سرویس ها مناسب است. نمونه کد زیر که در توییتر جستجو می کند را در نظر بگیرید:

این کد نتیجه را به فرمت وب به صورت JSON بازمی گرداند، آن ها را Pars می کند و سپس آن ها را در یک لیست نمایش می دهد که در تصویر زیر قابل مشاهده است:

Persisting Complex Data

هنگامی که یک تغییر پیکربندی رخ می دهد(مانند rotate شدن گوشی) کد فرآیند را تکرار می کند. به منظور استفاده مجدد از نتایج اصل بازیابی می توان از OnRetainNonconfigurationInstance برای ذخیره نتیجه استفاده کرد مشابه زیر:

حالا زمانی که دستگاه rotate می شود، نتایج اصلی از پراپرتی LastNonConfiguartionInstance باز می گردد. این نتایج شامل یک string[] به همرای توییت ها می باشد. تا زمانی OnRetainNonConfigurationInstance مورد نیاز است که Java.Lang.Object باز گردانده شود. string[] در کلاسی که زیر کلاسی از Java.Lang.Object است wrapped می شود.

برای مثال تلاش برای استفاده از TextView به عنوان آبجکتی که از OnRetainNonConfigurationInstance بازگردانده می شود activity را نفوذپذیر می کند که در کد زیر نمایش داده شده است:

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

− 1 = 1