AppManager 用于Activity管理和應(yīng)用程序退出

package com.xiaxiue.a.userlogin.utils;

import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;

import java.util.Stack;

/**

  • 應(yīng)用程序Activity管理類(lèi):用于Activity管理和應(yīng)用程序退出
  • @author ztf

*/
public class AppManager {

private static Stack<Activity> activityStack;
private static AppManager instance;

private AppManager(){}
/**
 * 單一實(shí)例
 */
public static AppManager getAppManager(){
    if(instance==null){
        instance=new AppManager();
    }
    return instance;
}
/**
 * 添加Activity到堆棧
 */
public void addActivity(Activity activity){
    if(activityStack==null){
        activityStack=new Stack<Activity>();
    }
    activityStack.add(activity);
}
/**
 * 獲取當(dāng)前Activity(堆棧中最后一個(gè)壓入的)
 */
public Activity currentActivity(){
    Activity activity=activityStack.lastElement();
    return activity;
}

/**
 * 結(jié)束當(dāng)前Activity(堆棧中最后一個(gè)壓入的)
 */
public void finishActivity(){
    Activity activity=activityStack.lastElement();
    finishActivity(activity);
}
/**
 * 結(jié)束指定的Activity
 */
public void finishActivity(Activity activity){
    if(activity!=null){
        activityStack.remove(activity);
        activity.finish();
        activity=null;
    }
}
/**
 * 結(jié)束指定類(lèi)名的Activity
 */
public void finishActivity(Class<?> cls){
    for (Activity activity : activityStack) {
        if(activity.getClass().equals(cls) ){
            finishActivity(activity);
        }
    }
}
/**
 * 結(jié)束所有Activity
 */
public void finishAllActivity(){
    for (int i = 0, size = activityStack.size(); i < size; i++){
        if (null != activityStack.get(i)){
            activityStack.get(i).finish();
        }
    }
    activityStack.clear();
}
/**
 * 結(jié)束了指定類(lèi)名以外的所有Activity
 * 
 */
public void finishAllActivity(Class<?> cls){
    for (Activity activity : activityStack) {
        if(!activity.getClass().equals(cls) ){
            finishActivity(activity);
        }
    }
}
/**
 * 退出應(yīng)用程序
 */
@SuppressWarnings("deprecation")
public void AppExit(Context context) {
    try {
        finishAllActivity();
        ActivityManager activityMgr= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        activityMgr.restartPackage(context.getPackageName());
        System.exit(0);
    } catch (Exception e) { }
}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,157評(píng)論 25 708
  • afinalAfinal是一個(gè)android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,889評(píng)論 2 45
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,628評(píng)論 19 139
  • 本次持有人會(huì)議召開(kāi)形式似乎彰顯當(dāng)?shù)卣氚褨|特鋼重整一案做成一經(jīng)典案例的用心。(以下引用機(jī)構(gòu)觀點(diǎn),后續(xù)兌付情況還需...
    天亮后的冬天閱讀 272評(píng)論 0 0
  • 愛(ài)情永遠(yuǎn)是整個(gè)人類(lèi)討論不休的話題,因?yàn)樗畈豢裳?,太捉摸不透,太催噬人心。?ài)情里的痛苦,多半源于承諾,總會(huì)...
    半步天涯閱讀 7,842評(píng)論 8 15

友情鏈接更多精彩內(nèi)容