من یک بکگراند سرویس دارم که بعضی وقتا نیاز داره یک AlertDialog نشون بده که کاربر yes یا no رو انتخاب کنه.
اولش این AlertDialog رو روی اکتیویتی اصلی برنامه نمایش میدادم، ولی مشکلش این بود که اگر اکتیویتی جاری مثلا اکتیویتی About یا Preferences بود، اونوقت AlertDialog نشون داده نمیشد تا زمانیکه کاربر به اکتیویتی اصلی برمیگشت و اونوقت AlertDialog نمایان میشد.
بخاطر همین اومدم و کاری کردم که AlertDialog با هر اکتیویتی ای که در حال حاضر فعاله اجرا بشه.
برای این هدف اومدم اینطور عمل کردم:
یک کلاس با یک متغییر استاتیک ایجاد کردم که هر زمان اکتیویتی فعال برنامه رو در خودش ذخیره کنه:
public class Current {public static Activity currentActivity;
}
Current.currentActivity=this;
AlertDialog.Builder builder = new AlertDialog.Builder(Current.currentActivity);
...
برچسب:
نویسنده: محمد رضا جوادیان