如何銷毀Activity,和(hé / huò)如何一次銷毀多個(gè)activity
發表時(shí)間:2021-1-4
發布人(rén):融晨科技
浏覽次數:66
在(zài)平時(shí)開發中打開過三個(gè)activity,分别爲(wéi / wèi):A, B, C,用android設備中的(de)"back"按鈕,需要(yào / yāo)點擊三下,才能退出(chū)到(dào)主界面(即需要(yào / yāo)三次操作才能銷毀掉這(zhè)三個(gè)activity)。那麽如何隻需要(yào / yāo)點擊一次back就(jiù)能一次把這(zhè)三個(gè)activity一次銷毀掉呢,方法挺簡單的(de),步驟如下:
(1)創建一個(gè)ActivityCollector.java,此類用作收集和(hé / huò)銷毀activity的(de)公共類.
public class ActivityCollector { public static List<Activity> activities = new ArrayList<Activity>(); public static void addActivity(Activity activity) { activities.add(activity); } public static void removeActivity(Activity activity) { activities.remove(activity); } public static void finishAll() { for (Activity activity : activities) { if (!activity.isFinishing()) { activity.finish(); } } } }
(2).創建一個(gè)BaseActivity.java基類,項目中的(de)所有activity都繼承此類.
public class BaseActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); ActivityCollector.addActivity(this); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); ActivityCollector.removeActivity(this); }
<span style="font-family: Arial, Helvetica, sans-serif;">}</span>(3)讓A, B, C這(zhè)三個(gè)activity分别去繼承BaseActivity.java.這(zhè)樣隻要(yào / yāo)activity一起動,或者子(zǐ)activity中重寫了(le/liǎo)onDestroy()方法,子(zǐ)activity就(jiù)會自動的(de)去收集activity,去銷毀某個(gè)Activity.
(4).如何在(zài)某個(gè)地(dì / de)方需要(yào / yāo)一次銷毀所有的(de)activity,隻需要(yào / yāo)調用ActivityCollector.java中的(de)finishAll()方法.
比如在(zài)app中的(de)任何一個(gè)界面調用loginout方法,就(jiù)需要(yào / yāo)用到(dào)一次kill多個(gè)activity:
public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case ConstantUtil.LOGINOUT: ActivityCollector.finishAll(); break;
}
}
上(shàng)面的(de)代碼很簡單,但是(shì)很适用.