بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
آموزش: شیوه درست صدازدن Superclass ها در Activity
شیوه درست صدا زدن Superclass ها در Activity اندروید:
// Called after onCreate has finished, use to restore UI state @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); // Always call the superclass method at FIRST. // Restore UI state from the savedInstanceState. // This bundle has also been passed to onCreate. // Will only be called if the Activity has been // killed by the system since it was last visible. } // Called before subsequent visible lifetimes for an activity process. @Override public void onRestart() { super.onRestart(); // Always call the superclass method at FIRST. // Load changes knowing that the Activity has already // been visible within this process. } // Called at the start of the visible lifetime. @Override public void onStart() { super.onStart(); // Always call the superclass method at FIRST. // Apply any required UI change now that the Activity is visible. } // Called at the start of the active lifetime. @Override public void onResume() { // Resume any paused UI updates, threads, or processes required // by the Activity but suspended when it was inactive. super.onResume(); // Always call the superclass method at LAST. } // Called to save UI state changes at the end of the active lifecycle. @Override public void onSaveInstanceState(Bundle savedInstanceState) { // Save UI state changes to the savedInstanceState. // This bundle will be passed to onCreate and // onRestoreInstanceState if the process is // killed and restarted by the run time. super.onSaveInstanceState(savedInstanceState); // Always call the superclass method at LAST. } // Called at the end of the active lifetime. @Override public void onPause() { // Suspend UI updates, threads, or CPU intensive processes // that don't need to be updated when the Activity isn't // the active foreground Activity. super.onPause(); // Always call the superclass method at LAST. } // Called at the end of the visible lifetime. @Override public void onStop() { super.onStop(); // Always call the superclass method at FIRST. // Suspend remaining UI updates, threads, or processing // that aren't required when the Activity isn't visible. // Persist all edits or state changes // as after this call the process is likely to be killed. } // Sometimes called at the end of the full lifetime. @Override public void onDestroy() { // Clean up any resources including ending threads, // closing database connections etc. super.onDestroy(); // Always call the superclass method at LAST. }
خلاصه مطب: در متد های onRestoreInstanceState، onStop, onRestart, onStart، ابتدا باید Superclass صدا زده بشه و بعد کدهای شما قرار بگیره. اما در متدهای onDestroy, onPause, onSaveInstanceState, onResume ابتدا باید کدهای شما قرار بگیره و بعد متد Superclass صدا زده بشه.
عدم رعایت این اولویت ها گاهی باعث کندی، crash کردن، memory leak، ناهماهنگی در UI، باگهای DataSaving و امثالش میشه... پس حتماً رعایت کنید.
(شاید درصد کمی از برنامه ها باشند که از این قائده پیروی نمی کنند، اما با آگاهی کامل از محتوا و مکانیسم Superclass ها.)
منبع: پروفسور Andrew T. Campbell (و گوگل)
http://www.cs.dartmouth.edu/~campbell/cs65/lecture05/lecture05.html
+1
0
ممنون بخاطر این اطلاعات مفید، اگرم خودتون ترجمه کردین سپاس بخاطر ترجمه مقاله بسیار عالی ! (8 سال پیش)
0
0
ممنون خیلی کاربردی بود (6 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
Reza
6 سال پیش
+1
0
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .