LifeCycle در اندروید

LifeCycle در اندروید
Life-Cycle در اندروید روند شروع تا خاتمه ی برنامه ی شماست، مانند کودکی که به دنیا می آید و تا هنگام مرگ از یک چرخه ی زندگانی عبور میکند، با استفاده از این مفاهیم میتوانید عملیات مورد نظرتان را در زمان درست انجام دهید بدون اینکه نیاز به کدنویسی اضافه داشته باشید.
 
سایت ساز سی می پلاس
در جشنواره طراحی سایت 20 تا 20 سی می پلاس وبسایت خود را بسازید و جایزه بگیرید
تصفیه هوا
سیستم تصفیه هوا هایدن ارایه شده توسط شرکت تهویه سپهر
خودتان را اینجا معرفی کنید

Life-Cycle از زمانی که اپ اجرا میشود به وجود می آید، به شکل زیر توجه کنید :
onCreate() : هنگام اجرای اکتیویتی اجرا میشود، اولین متدی میباشد که هنگام شروع اکتیویتی فراخوانی میشود، معمولا کارهای اصلی برنامه را در این متد انجام میدهند، برای مثال ساختن ویو های مختلف، اضافه و حذف از لیست ها و ... همچنین میتوانیم با استفاده از senContentView این اکتیویتی را به یک لایه xml وصل کنیم.
onStart() : هنگامی اجرا میشود که اکتیویتی توسط کاربر قابل دیدن باشد.
onResume() : هنگامی اجرا میشود که اکتیویتی توسط کاربر فراخوانی شود، در این هنگام اکتیویتی مورد نظر ما در بالای استک قرار دارد که کاربر به سراغ آن میرود ( برای آشنایی با مفاهیم استک به منابع ساختمان های داده مراجعه کنید )
onPause() : هنگامی استفاده میشود که کاربر به اکتیویتی جدید برود، اکتیویتی قبلی در حالت onPause() میرود و درون استک push میشود، وقتی به اکتیویتی قبلی برگردیم، اکتیویتی قبلی از استک pop میشود و به حالت onResume() در می آید.
onStop() : هنگامی اجرا میشود که زمان زیادی از دیدن اکتیویتی توسط کاربر میگذرد به دلیل اینکه اکتیویتی دیگری توسط کاربر به حالت onResume در آمده است، همچنین میتواند زمانی اجرا شود که اکتیویتی جدیدی شروع شده است و روی اکتیویتی قبلی آماده است.
onDestroy() : هنگامی که اکتیویتی شما به صورت کامل نابود شده است.

مثال

2 اکتیویتی بسازید به اسم های DemoFirstActivity و SecondActivity و درون DemoFirstActivity ، اکتیویتی SecondActivity را فراخوانی کنید، همچنین دو لایه ی xml بسازید، main.xml برای DemoFirstActivity و layout2.xml برای SecondActivity .
لایه ی main.xml باید به صورت زیر باشد :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
>

  
     <TextView
         android:id="@+id/textView1"
         android:layout_gravity="center_horizontal"
         android:textSize="23dp"
         android:layout_marginTop="150dp"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="This Is Fist Activity Activity"
         />
  
    <Button
        android:id="@+id/button1"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="      Second Activity     "
        android:onClick="startSecondActivity"/>

</LinearLayout>

لایه ی layout2.xml باید به صورت زیر باشد :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
>

     <TextView
         android:id="@+id/textView1"
         android:layout_marginTop="150dp"
         android:layout_gravity="center_horizontal"
         android:textSize="23dp"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="This Is Second Activity" />

      </LinearLayout>

DemoFirstActivity.java را به صورت زیر قرار دهید :
public class DemoFirstActivity extends Activity
{
    /** Called when the activity is first created. */


    @Override
    public void onCreate(Bundle savedInstanceState)
    {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            Toast.makeText(this, "On Create Called In First Activity", Toast.LENGTH_LONG).show();
            Log.i("FirstActivity", "Inside onCreate");
           
    }
     
   
    @Override
    protected void onStart() {
        // TODO Auto-generated method stub
        super.onStart();
        Toast.makeText(this, "On Start Called In First Activity", Toast.LENGTH_LONG).show();
        Log.i("FirstActivity", "Inside onStart");
    }
   
   
    @Override
    protected void onResume()
    {
        // TODO Auto-generated method stub
        super.onResume();
       
        Toast.makeText(this, "On Resume Called In First Activity", Toast.LENGTH_LONG).show();
        Log.i("FirstActivity", "Inside onResume");
    }
   
   
   
 @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        Toast.makeText(this, "On Pause Called In First Activity", Toast.LENGTH_LONG).show();
        Log.i("FirstActivity", "Inside onPause");
    }


   @Override
    protected void onStop() {
        // TODO Auto-generated method stub
        super.onStop();
       
        Toast.makeText(this, "On Stop Called In First Activity", Toast.LENGTH_LONG).show();
        Log.i("FirstActivity", "Inside onStop");
    }


   @Override
    protected void onDestroy()
    {
        // TODO Auto-generated method stub
        super.onDestroy();
        Toast.makeText(this, "On Destroy Called In First Activity", Toast.LENGTH_LONG).show();
        Log.i("FirstActivity", "Inside onDestroy");
       
    }
   
    public void startSecondActivity(View V)
    {
        // create an new Intent and Start Second Activity
        Intent intent=new Intent(this,SecondActivity.class);
        startActivity(intent);
    }
}

SecondActivity.java را به صورت زیر قرار دهید :
public class SecondActivity extends Activity
{
    /** Called when the activity is first created. */


    @Override
    public void onCreate(Bundle savedInstanceState)
    {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.layout2);
            Toast.makeText(this, "On Create Called In Second Activity", Toast.LENGTH_LONG).show();
            Log.i("SecondActivity", "Inside onCreate");
           
    }
     
   
    @Override
    protected void onStart() {
        // TODO Auto-generated method stub
        super.onStart();
        Toast.makeText(this, "On Start Called In Second Activity", Toast.LENGTH_LONG).show();
        Log.i("SecondActivity", "Inside onStart");
    }
   
   
    @Override
    protected void onResume()
    {
        // TODO Auto-generated method stub
        super.onResume();
       
        Toast.makeText(this, "On Resume Called In Second Activity", Toast.LENGTH_LONG).show();
        Log.i("SecondActivity", "Inside onResume");
    }
   
   
   
 @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        Toast.makeText(this, "On Pause Called In Second Activity", Toast.LENGTH_LONG).show();
        Log.i("SecondActivity", "Inside onPause");
    }


   @Override
    protected void onStop() {
        // TODO Auto-generated method stub
        super.onStop();
       
        Toast.makeText(this, "On Stop Called In Second Activity", Toast.LENGTH_LONG).show();
        Log.i("SecondActivity", "Inside onStop");
    }


   @Override
    protected void onDestroy()
    {
        // TODO Auto-generated method stub
        super.onDestroy();
        Toast.makeText(this, "On Destroy Called In Second Activity", Toast.LENGTH_LONG).show();
        Log.i("SecondActivity", "Inside onDestroy");
       
    }
}
 سپس باید Log هایی که تولید میشوند به صورت زیر باشند :

03-14 15:33:31.313: I/FirstActivity(22609): Inside onCreate
03-14 15:33:31.318: I/FirstActivity(22609): Inside onStart
03-14 15:33:31.323: I/FirstActivity(22609): Inside onResume
03-14 15:33:44.183: I/FirstActivity(22609): Inside onPause
03-14 15:33:44.313: I/SecondActivity(22609): Inside onCreate
03-14 15:33:44.318: I/SecondActivity(22609): Inside onStart
03-14 15:33:44.323: I/SecondActivity(22609): Inside onResume
03-14 15:33:44.513: I/FirstActivity(22609): Inside onStop
03-14 15:34:03.578: I/SecondActivity(22609): Inside onPause
03-14 15:34:03.603: I/FirstActivity(22609): Inside onStart
03-14 15:34:03.603: I/FirstActivity(22609): Inside onResume
03-14 15:34:03.813: I/SecondActivity(22609): Inside onStop
03-14 15:34:03.818: I/SecondActivity(22609): Inside onDestroy

محمد یه دانشجوی فناوری اطلاعات هست که از سال 92 فعالیتش رو شروع کرد، در حال حاضر در زمینه ی برنامه نویسی تحت وب و اندروید و شبکه های ارتباطی سیسکو فعالیت میکنه .

نظرات و سوالات کاربران

هنوز دیدگاه و یا سوالی ارسال نشده است.
هم اکنون شما اولین دیدگاه را ارسال کنید.