1. 程式人生 > >如何銷燬Activity,和如何一次銷燬多個activity

如何銷燬Activity,和如何一次銷燬多個activity

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).建立一個BaseActivity.java基類,專案中的所有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這三個activity分別去繼承BaseActivity.java.這樣只要activity一起動,或者子activity中重寫了onDestroy()方法,子activity就會自動的去收集activity,去銷燬某個Activity. (4).如何在某個地方需要一次銷燬所有的activity,只需要呼叫ActivityCollector.java中的finishAll()方法.      比如在app中的任何一個介面呼叫loginout方法,就需要用到一次kill多個activity:
public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
            case ConstantUtil.LOGINOUT:                
                ActivityCollector.finishAll();
                break;
}
}
上面的程式碼很簡單,但是很適用.



相關推薦

下載文件

itl cnblogs script log logs html 文件 download nload 一次下載多個文件 JavaScript多文件下載一次下載多個文件

(轉)Spring文件上傳,包括選中文件

bmi while .html span cto input 獲取文件 dex asn 背景: http://www.cnblogs.com/lixuwu/p/8495275.html已經實現了單文件的上傳和下載,多文件的上傳是另一種情景,這裏記錄下來 實現過程

下載檔案的解決思路-JS

一次下載多個檔案的解決思路(iframe) - Eric 真實經歷 最近開發專案需要做檔案下載,想想挺簡單的,之前也做過,後臺提供下載介面,前端使用window.location.href就行了唄。不過開發的時候發現,有些檔案有附屬檔案,點選 下載按鈕 需要下載兩個檔案,而且不能使用壓縮包的形式。想想

maven 打包maven專案

maven 一次打包多個maven專案。 使用場景 一個專案由多個子專案組成,每個子專案也是一個maven專案。每次打包需要打包每個子專案,很麻煩,其實可以通過配置一個頂級的pom.xml檔案來解決這個問題,只需要打包頂層的maven專案,即可。如果一個專案有多個子專案的pom.

List集合刪除元素

JAVA中迴圈遍歷list有三種方式:   for迴圈、增強for迴圈(也就是常說的foreach迴圈)、iterator遍歷。 1、for迴圈遍歷list for(int i=0;i<list.size();i++){ if(list.get(i).equals

WEB版選擇檔案進行批量上傳(swfupload)的解決方案

功能完全支援ie和firefox瀏覽器!       一般的WEB方式檔案上傳只能使用FileUpload控制元件進行一個檔案一個檔案的進行上傳,就算是批量上傳,也要把檔案一個一個的新增到頁面,無法如windows程式一樣,一次選擇多個檔案進行批量上傳。這樣在某些應用上就

Android6.0及以上版本請求許可權的處理方式

final private int REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS = 124; private void insertDummyContactWrapper() { List<Stri

ViewPager如何阻止其滑動切換頁閃爍的問題

public class CustomViewPager extends ViewPager{ private boolean isCanScroll = true; public CustomViewPager(Context context, AttributeSet attrs) { super(co

Python列表刪除重複元素

(1)刪除列表中所有'a': l = [0,1,'a',2,'a','a',3,4] l = [x for x in l if x != 'a'] print(l) >>[0,1,2,3,4] (2)刪除列表中所有'a'和‘b’: delete_list = ['a','b'

Android 仿PC端QQ自由截圖,可支援區域

仿PC端QQ截圖,可任意截圖,這裡只做了矩形這一種形狀,可同時支援擷取多個區域,支援撤銷上次截圖,重新擷取。 實現原理: 自定義SurfaceView,在SurfaceView上繪製具有一個可拉伸,移動的矩形框,當點選截圖按鈕後,計算矩形

Ubuntu系統編寫shell指令碼程式安裝軟體包

#!/bin/sh sudo apt-get install gcc g++ python -y sudo apt-get install gcc g++ python python-dev -y sudo apt-get install mercurial -y sudo apt-get install b

使用JDBC插入表、條記錄

程式碼如下: public static void insertBatch() { int count[]; int count1[]; Boolean isinsert = false; Connection con = null; PreparedS

Android 6.0動態申請許可權(申請

Android一次申請多個動態許可權 昨天做一個錄音功能的程式,發現在開啟Mic的時候發生了程式崩潰,但是錯誤提示裡面居然沒有提示許可權禁止。  解決的方法有:1.手動去選擇“應用”–>“程式”–>找到那個程式新增許可權,後面程式就可以正常使用了 2.設定動態請

訓練得到模型做整合的方法

參考論文 SNAPSHOT ENSEMBLES: TRAIN 1, GET M FOR FREE 解決的問題 多個分類器整合可以獲得超過單個分類器的效果,但整合分類器就要求有多個分類器,在訓練速度和測試速度方面不佔優勢。本文提出的方法可以提高整合學習的訓練速度,通過一次訓練,

Python中讀取

Python 2裡面讀取輸入的函式是raw_input(), Python 3的是input(),讀入一個值後回車讀取輸入就退出了,想要一次讀取多個輸入,可以像下面這樣: a, b = raw_inp

redis列表型別list如何返回值並刪除這些值

redis的列表型別list是一個常用的資料型別,但是這個型別並不支援一次性返回多個值並刪除這些已經返回的值。 其實我們可以通過redis的事務,來完成這個一次性返回多個值並刪除這些已經返回的值的需求。 redis中的事務就是一組命令的集合,這些命令要麼全部執行,要麼全都

如何用shell讀取檔案內容

在寫shell指令碼的時候,因為shell本身的資料結構很簡單,連二維陣列都不能支援,所以配置檔案的形式也不能過於複雜(個人看法,有什麼意見請說),因此需要寫多個配置檔案來滿足業務。 通常情況下,我們用shell讀取一個配置檔案是這樣寫的: while re

WEB版選擇檔案進行批量上傳(Plupload)的解決方案

/// <summary> /// uploadFiles 的摘要說明 /// </summary> public class uploadFiles : IHttpHandler { public void Process

AndroidStudio

功能背景: 因公司專案要求,每次打包都需要打包三個版本,兩個測試版本和一個線上的版本, 並且呼叫不同的baseURL,最開始的做法是每次打包一次就換一個baseURL,然後一個個打包,分別需要打包三次,如果編譯很慢會浪費了很多時間,還需要註釋掉不同的baseUR

替換詞,批量替換字串(使用不了的解決辦法)

三天前上CSDN,發現有人回覆批量替換多個詞的工具使用不了。下載下來試用了一下,確實報錯,這兩天打算做個網頁版本的,排版佈局還沒弄好。 上貼回覆以前工具使用不了的解決辦法:下載32位的jre,然後配置JAVA_HOME。 2、下載完畢解壓後,假如路徑(自