نحوه پاک کردن تمام متغیر های سراسری زمانی که کاربر از برنامه خارج می شود
من داخل برنامه یک سری متغیر های سراسری ( Global ) استفاده کردم ، زمانی که با برنامه کار می کنم یک سری از متغیرها سراسری نسبت به شرایط برنامه مقدار پیشفرضش عوض می شه و مقدار جدیدُ به خودش می گیره . اما زمانی که برنامه رو به طور کامل می بندم و دوباره برنامه باز می کنم ، متغیرهای سراسری که تعریف کرده بودم دیگه مقدار پیش فرضشونو نداره ، بلکه مقداری که دفعه قبل توسط کاربر دستکاری شده است رو به خود می گیره
من چی کار کنم که این مشکل حل بشه ؟ و با بیرون اومدن از برنامه تمام متغیرهای سراسری به مقدار اولیه خود شون برگردن ؟
public class Global {
public static boolean Build_G = true;
public static byte Body_G = 1;
}
اگه کلاس Global شما به عنوان Application استفاده میشه این مشکل پیش میاد
شما بهتره مقدار دهی ها رو در متدی مثلا در همون کلاس Global ت انجام بدی و در oncreat اولین Activity ت (مثلا صفحه MainMenu ت ) اون متد رو صدا بزنی.
بسته به مقدار دهی هایی که داری انجام میدی میتونه متدت استاتیک و یا غیر استاتیک هم باشه
امیدوارم کمک کرده باشم ;)
همانطور که دوستان گفتن، اگر Process شما باز باشه کلیه متغیر های Static شما حذف نمیشن و تنها کلاسهای جدیدی که ساخته میشن مقدار جدید می گیرن. پس دو راه حل دارید:
1- با استفاده از دستور زیر در هنگام خارج شدن ( مثلاً زدن کلید Back ) پروسس رو ببنید:
System.exit(0);
2- کلاس شروع کننده برنامه رو یک چیزی مثل Splash بذارید که در اون همه متغیرهای Static یا خاصیت هایی که به علت بسته نشدن پروسس خراب می شن رو مقدار دهی مجدد بکنید و منشأ ورود به برنامه همیشه این ActivitySplash باشه و اون Activity اصلی رو پس از انجام پردازش های لازم باز کنه.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .