91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android完全退出程序退出所有Activity

發布時間:2020-07-08 04:10:22 來源:網絡 閱讀:1310 作者:sunnyhack 欄目:移動開發

    做過Android開發的人都知道,應用程序點擊返回鍵或者代碼調用了Activity.finish()方法都無法完全退出,通過任務管理工具可以看到他們還在進程中。那我們應該如何完全退出應用程序呢?

    下面將給大家分享,Android客戶端如何完全退出應用程序的方法:


    1.添加權限

    <uses-permission android:name=”android.permission.RESTART_PACKAGES”/>


    2.導入AppManager工具類

    AppManager類是一個自定義的工具類,作用是將應用程序所有啟動的Activity都添加到堆棧,最終退出應用程序時全部釋放掉Activity。

    AppManager類完整代碼:

package com.sunny.aa;

import java.util.Stack;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;

/**
 * 應用程序Activity管理類 
 */
public class AppManager {
	private static Stack<Activity> activityStack;
	private static AppManager instance;

	private AppManager() {
	}

	/**
	 * 單例
	 */
	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);
	}

	/**
	 * 獲取當前Activity(堆棧中最后一個壓入的)
	 */
	public Activity currentActivity() {
		Activity activity = activityStack.lastElement();
		return activity;
	}

	/**
	 * 結束當前Activity(堆棧中最后一個壓入的)
	 */
	public void finishActivity() {
		Activity activity = activityStack.lastElement();
		if (activity != null) {
			activity.finish();
			activity = null;
		}
	}

	/**
	 * 結束指定的Activity
	 */
	public void finishActivity(Activity activity) {
		if (activity != null) {
			activityStack.remove(activity);
			activity.finish();
			activity = null;
		}
	}

	/**
	 * 結束指定類名的Activity
	 */
	public void finishActivity(Class<?> cls) {
		for (Activity activity : activityStack) {
			if (activity.getClass().equals(cls)) {
				finishActivity(activity);
			}
		}
	}

	/**
	 * 結束所有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();
	}

	/**
	 * 退出應用程序
	 */
	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) {
		}
	}
}

    

    3.使用AppManager工具類

    Activity啟動時,在的onCreate方法里面,將該Activity實例添加到AppManager的堆棧。

AppManager.getAppManager().addActivity(this);

    需要退出程序時調用

AppManager.getAppManager().AppExit(this);

     

     經過以上幾步操作,即可完全退出程序退出所有Activity,歡迎大家一起交流學習~

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嫩江县| 新野县| 新邵县| 惠州市| 普定县| 儋州市| 新泰市| 临城县| 贺兰县| 安徽省| 柳河县| 龙川县| 临夏市| 无棣县| 南川市| 霍城县| 萍乡市| 揭东县| 大埔区| 特克斯县| 溧阳市| 财经| 宽城| 高邮市| 新安县| 襄汾县| 上虞市| 滦平县| 思茅市| 镇江市| 长治县| 高要市| 车致| 葵青区| 丰顺县| 朝阳市| 麻江县| 阜阳市| 四会市| 馆陶县| 十堰市|