نشان دادن AlertDialog در اکتیویتی جاری برنامه

ساخت وبلاگ
من یک بکگراند سرویس دارم که بعضی وقتا نیاز داره یک AlertDialog نشون بده که کاربر yes یا no رو انتخاب کنه.
اولش این AlertDialog رو روی اکتیویتی اصلی برنامه نمایش میدادم، ولی مشکلش این بود که اگر اکتیویتی جاری مثلا اکتیویتی About یا Preferences بود، اونوقت AlertDialog نشون داده نمیشد تا زمانیکه کاربر به اکتیویتی اصلی برمیگشت و اونوقت AlertDialog نمایان میشد.
بخاطر همین اومدم و کاری کردم که AlertDialog با هر اکتیویتی ای که در حال حاضر فعاله اجرا بشه.
برای این هدف اومدم اینطور عمل کردم:
یک کلاس با یک متغییر استاتیک ایجاد کردم که هر زمان اکتیویتی فعال برنامه رو در خودش ذخیره کنه:

کد:

public class Current {

    public static Activity currentActivity;

}

بعد در متد onResume تمام اکتیویتی های برنامه، این کد رو نوشتم:

کد:

Current.currentActivity=this;

بعدهم در اون بکگراند سرویس دیالوگ رو بر اساس اکتیویتی ذخیره شده در Current.currentActivity اجرا میکنم:

کد:

AlertDialog.Builder builder = new AlertDialog.Builder(Current.currentActivity);
...

این متد کار میکنه، ولی گفتم نظر شما رو بپرسم ببینم بنظرتون مشکلی چیزی نداره؟
شما هم با چنین نیازی مواجه شدید تاحالا؟
البته یه راه دیگری که برای حل این مشکل اول بنظرم رسید این بود که کلا یک اکتیویتی اختصاصی برای اجرای AlertDialog ایجاد کنم و بعد هر زمان که میخوام دیالوگ رو نمایش بدم اون اکتیویتی رو استارت کنم.

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : خنجی prog بازدید : 119 تاريخ : دوشنبه 16 فروردين 1395 ساعت: 2:22

خبرنامه