آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

استفاده از متد onDestroy

naruto  10 سال پیش  10 سال پیش
+1 0

چطوری باید از متد onDestroy استفاده کنیم ؟ من می خوام در هر اکتیویتی که هستم با استفاده از یه تابع از کل برنامه خارج بشم و وقتی دوباره وارد برنامه بشم، از اول شروع به اجرای برنامه کنم. الان کدی که من نوشتم اینه. برای تست توسومین اکتیویتی که هستم یه دکمه گذاشتم که وقتی روش کلیک می کنم می خوام کلا خارج بشه از برنامه ولی خب عمل نمی کنه.

 package samani.dave.app.count;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class AboutActivity extends Activity {

    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
    }


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.about);

         Button butt findViewById(R.id.button1);

        button1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                onDestroy();
            }
        });

    }

}
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
CreativeBoy  10 سال پیش
+2 0

دوست عزیز onDestroy خودش یه event هست و زمانی اجرا میشه که اکتیویتی بسته میشه نه این که وقتی فراخوانی میشه اکتیویتی رو میبنده.

اگه به معنی onDestroy هم دقت کنی میبینی که on وقتی قبل از Destroy اومده یعنی در زمان destroy یا تخریب شدن. پس یعنی شما توی بدنه این تابع باید یه چیزی بنویسید تا در زمان destroy شدن اکتیویتی کاری انجام بشه. مثل وقتی که توی متد onCreate کدهاتو مینویسی تا به محض ساخته شدن اکتیویتی اون کدها اجرا بشن. و همین طور برای onResume و onStop و onRestart  و ... 

برای بستن اکتیویتی باید از ()finish استفاده کنی، الان به جای اون onDestroy که گذاشتی تو متد onClick بذاری ()finish درست میشه. 

برای درک بهتر مفاهیم مربوط به اکتیویتی ها بخش 5 رو کامل مطالعه کن،  مخصوصا "از چرخه اجرا بیشتر بدانیم"

0 0
اتفاقا قبل از اینکه این سوال رو بپرسم اون قسمت رو نگاه کردم ولی راه حلی بهم نداد. (10 سال پیش)
0 0
پس معلومه که با دقت فیلم ها رو نگاه نکردی، چون استاد توی فیلم ها همه چیزو کامل توضیح دادن، متد های onDestroy و ... توی آموزش activity life cycle هست، و قسمت اول از بخش 5 هم طرز کار کردن با اکتیویتی ها آموزش داده شده. حتما فیلم ها رو یه بار دیگه مرور کن، چون اگه توی این مفاهیم پایه ای مشکل داشته باشی توی بخش های بعد انگیزتو از دست میدی. موفق باشی (10 سال پیش)
0 0
الان این کاری که شما گفتید رو انجام دادم. ولی باز هم کار نکرد. دلیلش چیه؟ (10 سال پیش)
0 0
()G.currentActivity.finish رو امتحان کردی ؟ (10 سال پیش)
پاسخ به سوال 
مجتبی یگانه  10 سال پیش
+2 0

پاسخ دوستمون کاملا درسته ، درضمن برای بستن کامل برنامه باید اول تمام اکتیویتی های باز بسته بشن ، برای اینکار کافیه از  اکتیویتی ای که در آن قرار دارید ، به اکتیویتی خانه برید(حتما باید به یک اکتیویتی باز رجوع کنید ) ، یا این دستورات :

Intent intent = new Intent(ActivityInfo.this, ActivityHome.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

خوب تا اینجا تمام اکتیوتی ها بسته شدن ، و فقط ActivityHome باز هست ، هرچند میتونید با دستور finish برنامه رو ببندید ، اما برای بستن پروسس برنامه میتونید این کار هم انجام بدید

ActivityHome.finish();
System.exit(0); // Close App Process !
پاسخ به سوال 
طاهر  10 سال پیش
+4 0

  /*
* Exit Of Application
*/
public static void AppExit()
{
G.CurrentActivity.finish();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
G.CurrentActivity.startActivity(intent);
System.exit(0);
}

0 0
سلام. دستتون درد نکنه. با همین راه شما تو G ست کردم و تونستم تو هر Activity که هستم کلا از App خارج بشم. (10 سال پیش)
0 0
خواهش میکنم قابلی نداشت (10 سال پیش)
0 0
عالی بود تشکر (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .