PDA

View Full Version : بستن یک اکتیویتی در اکتیویتیه دیگر



saman-arsenal
شنبه 02 آبان 1394, 11:29 صبح
سلام

من یک اکتیویتیه main دارم که وقتی به یک اکتیویتیه دیگه میرم main و finish نمیکنم تا موقع برگشت از activity دوم با finish اون main دوباره اجرا بشه اما تو یکی از activity ها احتیاج دارم main را finish کنم ... چه طور باید این کار و انجام بدم ؟
قبل این که سوالم و این جا بزارم سرچ کردم چندتا روش و مثل ست کردن setResult و چک کردن result در onResult مین انجام دادم اما onResult اجرا نمیشد اصلا , یا اینکه یه متغییر استاتیک از نوع اکتیویتی توو main درست کردن و خواستم توو اون یکی اکتیویتی finish کنمش اما نشد :ناراحت:

NeoFighT
شنبه 02 آبان 1394, 19:01 عصر
شما میتونید یک کلاس بسازید و داخلش یک لیست Static از Activity داشته باشید و وارد هر اکتیویتی که میشید به اون لیست اکتیویتیتون رو add کنید و هر وقت خواستید میتونید به همه اکتیویتی ها دسترسی داشته باشید با اون لیست و هر کدوم رو که میخواید finish کنید.
مثلا کلاستون به این شکل باشه :
public class ActivityHandler { public static ArrayList<Activity> appActivities = new ArrayList<>();
}

بعد توی onCreate اکتیویتی هاتون ، اون اکتیویتی رو به لیست Add کنید :

ActivityHandler.appActivities.add(this);


و هروقت که خواستید به اون لیست دسترسی پیدا کنید و یک اکتیویتی رو finish کنید :

(findViewById(R.id.tv)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityHandler.appActivities.get(0).finish();
finish();
}
});