如何銷毀Activity,和(hé / huò)如何一次銷毀多個(gè)activity - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 技術分享 >

如何銷毀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ì)很适用.










相關案例查看更多