1. 程式人生 > >android Activity管理器

android Activity管理器

/**
 * @ClassName: ActivityTaskManager
 * @Description: TODO(Activity管理器)
 * @author lhn
 * @date 2016-4-15 上午10:34:10
 */
public class ActivityTaskManager {
	// 建立ActivityTaskManager
	private static ActivityTaskManager activityTaskManager = null;
	// 建立activity管理Map
	private HashMap<String, Activity> activityMap = null;

	/**
	 * @Description:返回Activity管理器的唯一例項物件(採用單例的實現模式)
	 * @return ActivityTaskManager(Activity管理器的唯一例項物件)
	 */
	public static synchronized ActivityTaskManager getInstance() {
		// synchronized方法宣告時使用,放在範圍操作符(public等)之後,返回型別宣告(void等)之前.
		// 這時,執行緒獲得的是成員鎖,即一次只能有一個執行緒進入該方法,其他執行緒要想在此時呼叫該方法,只能排隊等候,
		// 當前執行緒(就是在synchronized方法內部的執行緒)執行完該方法後,別的執行緒才能進入.
		if (activityTaskManager == null) {
			activityTaskManager = new ActivityTaskManager();
		}

		return activityTaskManager;

	}

	/**
	 * @Description:向Activity管理器中新增Activity
	 * @param String
	 *            actName(Activity的名稱) Activity activity(要存入的Activity)
	 * @return void
	 */
	public void addActivity(String actName, Activity activity) {
		// 先判斷是否已經存在這個activity
		if (!activityMap.containsKey(actName)) {
			// 沒有存在放入該activity
			activityMap.put(actName, activity);
		} else {
			// 已經存在,則結束要存入的activity
			activity.finish();
		}
	}

	/**
	 * @Description 得到儲存在管理器中的Activity物件。
	 * @param String
	 *            actName(Activity的名稱)
	 * @return Activity
	 */
	public Activity getActivity(String name) {

		return activityMap.get(name);

	}

	/**
	 * @Description 返回管理器的Activity是否為空。
	 * 
	 * @return 當且當管理器中的Activity物件為空時返回true,否則返回false。
	 */

	public boolean isEmpty() {

		return activityMap.isEmpty();

	}

	/**
	 * @Description 返回管理器中Activity物件的個數。
	 * 
	 * @return 管理器中Activity物件的個數。
	 */

	public int size() {

		return activityMap.size();

	}


	/**
	 * @Description:removeActivity將不用的Activity移除
	 * @param String
	 *            actName(Activity的名稱)
	 * @return void
	 */
	public void removeActivity(String actName) {
		// 得到該Activity的例項
		Activity activity = activityMap.get(actName);
		// 如果不為null,則結束掉該activity
		if (activity != null)
			activity.finish();

		// 在activityMap中移除
		activityMap.remove(actName);
	}

	/**
	 * @Description:finishAll結束掉所有Activity
	 * @return void
	 */
	public void finishAll() {
		// 遍歷所有的Activity找到後執行finish
		for (String actName : activityMap.keySet()) {
			Activity activity = activityMap.get(actName);
			if (!activity.isFinishing()) {
				activity.finish();
			}
		}
		// 完全退出app,否則還有程序在後臺
		System.exit(0);
	}

}


相關推薦

android Activity管理

/** * @ClassName: ActivityTaskManager * @Description: TODO(Activity管理器) * @author lhn * @date 2016-4-15 上午10:34:10 */ public class ActivityTaskManager

Android activity管理

package com.yunduan.parking.manager; import android.app.Activity; import android.app.ActivityManager; import android.content.Context; import com.y

Android 裝置管理和有權檢視使用情況的應用詳解

Android中有很多的應用想要取得裝置管理器許可權,成為系統裝置管理器之後可以實現鎖屏、擦除使用者資料等功能,專案中客戶希望自己的app能夠預設成為系統的裝置管理器,如何操作呢?,下面來介紹一下: DevicePolicyManager mDPM = (D

android檔案管理需求分析之一

(部分初稿) 正在做一個android檔案管理器,程式碼基本完成,但由於一直以來面向過程開發的,到後期程式碼量不斷增大,Bug頻繁出現,修改程式碼變得非常繁瑣、困難。 於是我想從需求分析開始重新對專案進行整合、編碼。 算是第一次寫需求分析,必然會出現很多Bug,希望前輩們能

android 檔案管理的原始碼實現

public class ExDialog extends ListActivity { // ListActivity自帶List控制元件          private List<Map<String, Object>> mData;          private Strin

activity管理一次退出所有activity

建立一個自己專案的Activity管理類(方法一 二均可用)記得點贊哦!謝謝 方法一public class ActivityManager { private static Stack<Activity> activityStack; private

Android 檔案管理 Android檔案管理原始碼

/**************************************************** 大家都知道寫部落格會很累的,大熱天的。 請不要可憐你的滑鼠,(*^__^*) 嘻嘻…… **************************************

一個私人定製的PC端Android檔案管理

工欲善其事,必先利其器。 一個好的工具對能省不少體力活呢。 如果現在老大給你個任務,把一個檔案放到手機裡,你是不是慢慢吞吞地開啟cmd,敲入幾句自以為高大上的adb push here there,然後敲入回車,等收到那熟悉的回答2108 KB/s (669 bytes in 0.006s)後,頓時眉開眼笑。

android檔案管理開發中遇到的一些問題

1.難點主要有如何獲取外掛裝置的資訊以及路徑無論是U盤還是TF卡等等 獲取方式在其他部落格中請自己檢視。 2.在Android6.0中想要對外部裝置進行的檔案的操作是比較難的 因為6.0中Android系統對外部儲存器操作的許可權進行了修改,所以只能進行讀操作,無法進行對外

Android檔案管理安裝apk流程記錄

05-10 22:09:26.301 1402 1888 I ActivityManager: START u0 {act=android.intent.action.VIEW dat=file:///storage/emulated/0/下載/App/av

android Activity管理類(全域性管理Activity)

又忙了一個多月,完成了新專案的第一階段,最近覺得自己加班加的麻木了,沒時間總結和學習東西。算了,說正事。 大家在開發專案的時候,第一步就是專案框架的搭建。包含了 http 請求框架, base基類(BaseActivity、BaseFragment等)等。 當然

Android檔案管理

自己花了1個小時寫了個檔案管理器。寫之前以為是很難寫的,其實就是對File的操作嘛。。。所以我就寫了查,其他都沒寫,沒意義了。難度係數:0檔案管理器核心程式碼File[] files = file.listFiles()對,你沒有看錯,核心就只有一行程式碼。知道這一行程式碼就

開源 android 檔案管理

# File_Explorer # Android 檔案管理器 包常用ui控制元件有:         1.側滑選單slidingMenu            2.相容actionbar----actionbarsherlock         #專案結構:         com.yang.file_ex

Android開發之AudioManager(音頻管理)具體解釋

應該 數量 service eth out 開發 要求 type 路由 AudioManager簡單介紹: AudioManager類提供了訪問音量和振鈴器mode控制。使用Context.getSystemService(Context.AUDIO_SERVICE)

Android有用的任務管理—tractor

star 用戶體驗 keyword 針對 ++ 限制 esp clear 方便 在平時的android開發工作中,我們常常須要運行耗時操作,有時為了用戶體驗還須要顯示個等待框,我之前的做法都是開一個線程,然後用handler發消息進行顯示和關閉等待框以及

Android 本應用數據清除管理DataCleanManager

sdi body format except [] bsp 參數 base adding 1.整體分析 1.1.源代碼先給出了,可以直接Copy。 /** * 本應用數據清除管理器 */ public class DataCleanMana

Android項目實戰(三十七):Activity管理及BaseActivity的實現

nbsp agen etc == tar fin email ted AD 原文:Android項目實戰(三十七):Activity管理及BaseActivity的實現Ps:7-10月 完成公司兩個app項目上架。漏掉的總結 開始慢慢補上。 一、寫一個Activit

Android遠程桌面助手之文件管理

mage 文件系統 下載地址 顯示 pull target 圖片 界面 分享圖片 Android遠程桌面助手除了支持Android界面的顯示及控制外,還支持Android文件系統的管理,包括文件的快速上傳(push)、下拉(pull)和查看(cat)。 Android遠程

android RingtoneManager 鈴聲管理

first list cat method fault next() 條目 getcount turn 獲取默認鈴聲Uri/ Uri String Uri sound = RingtoneManager.getDefaultUri(type);(type =

Android原始碼解析之應用程式資源管理(Asset Manager)的建立過程分析

轉載自:https://blog.csdn.net/luoshengyang/article/details/8791064 我們分析了Android應用程式資源的編譯和打包過程,最終得到的應用程式資源就與應用程式程式碼一起打包在一個APK檔案中。Android應用程式在執行的過程中,是通過一個