تالار گفتمان nCIS.ir

نسخه‌ی کامل: بستن یک اکتیویتی در اکتیویتیه دیگر
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام

من یک اکتیویتیه main دارم که وقتی به  یک اکتیویتیه دیگه میرم main  و finish نمیکنم تا موقع برگشت از activity دوم با finish اون main دوباره اجرا بشه اما تو یکی از activity ها احتیاج دارم main را finish کنم ... چه طور باید این کار و انجام بدم ؟
قبل این که سوالم و این جا بزارم سرچ کردم چندتا روش و مثل ست کردن setResult و چک کردن result در onResult مین انجام دادم اما onResult اجرا نمیشد اصلا , یا اینکه یه  متغییر استاتیک  از نوع اکتیویتی توو main درست کردن و خواستم توو اون یکی اکتیویتی finish کنمش اما نشد  Huh
یه کلاس از Application مشتق کنید و داخلش یه فیلد این شکلی تعریف کنید:
public class Global extends Application {
    public static Activity mainActivity;
}

بعد توی مانیفست، android:name رو توی قسمت application با مقدار "Global." تنظیم کنید:
<application
    android:name=".G"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    .
    .
    .
</application>
حالا توی onResume (یا onCreate) توی اکتیویتی main خودتون این کد رو بنویسید:
public class ActivityMain extends Activity {
    .
    .
    .
    @Override
    protected void onResume() {
        Global.mainActivity = this;
    }
    .
    .
    .
}

حالا توی هر اکتیویتی که خواستین، با دستور زیر میتونید اکتیویتی main رو ببندین:
Global.mainActivity.finish();