Activity管理
生活随笔
收集整理的這篇文章主要介紹了
Activity管理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
public class AppManager {
? ? public Stack<Activity> getActivityStack() {
? ? ? ? return activityStack;
? ? }
? ? private Stack<Activity> activityStack;
? ? private static AppManager appManager;
? ? String tag = AppManager.class.getSimpleName();
? ? private AppManager() {
? ? }
? ? /**
? ? ?* 單一實例
? ? ?*/
? ? public static AppManager getAppManager() {
? ? ? ? if (appManager == null) {
? ? ? ? ? ? appManager = new AppManager();
? ? ? ? }
? ? ? ? return appManager;
? ? }
? ? /**
? ? ?* 添加Activity到堆棧
? ? ?*/
? ? public void addActivity(Activity activity) {
? ? ? ? if (activityStack == null) {
? ? ? ? ? ? activityStack = new Stack<>();
? ? ? ? }
? ? ? ? activityStack.add(activity);
? ? }
? ? /**
? ? ?* 獲取當前Activity(堆棧中最后一個壓入的)
? ? ?*/
? ? public Activity currentActivity() {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return null;
? ? ? ? Activity activity = activityStack.lastElement();
? ? ? ? return activity;
? ? }
? ? /*****
? ? ?* 獲取前一個activity
? ? ?* @return
? ? ?*/
? ? public Activity lastActivity() {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return null;
? ? ? ? Activity activity = activityStack.elementAt(activityStack.size()-2<0?0:activityStack.size()-2);
? ? ? ? return activity;
? ? }
? ? /**
? ? ?* 結束當前Activity(堆棧中最后一個壓入的)
? ? ?*/
? ? public void finishActivity() {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return;
? ? ? ? Activity activity = activityStack.lastElement();
? ? ? ? finishActivity(activity);
? ? }
? ? /**
? ? ?* 結束指定的Activity
? ? ?*/
? ? public void finishActivity(Activity activity) {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return;
? ? ? ? if (activityStack!=null&&!activityStack.isEmpty()&&activity != null) {
? ? ? ? ? ? activityStack.remove(activity);
? ? ? ? }
? ? }
? ? /**
? ? ?* 結束指定類名的Activity
? ? ?*/
? ? public void finishActivity(Class<?> cls) {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return;
? ? ? ? for (Activity activity : activityStack) {
? ? ? ? ? ? if (activity.getClass().equals(cls)) {
? ? ? ? ? ? ? ? finishActivity(activity);
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? /**
? ? ?* 結束所有Activity
? ? ?*/
? ? public void finishAllActivity() {
? ? ? ? if (activityStack == null||activityStack.isEmpty())
? ? ? ? ? ? return;
? ? ? ? for (int i = 0, size = activityStack.size(); i < size; i++) {
? ? ? ? ? ? if (null != activityStack.get(i)) {
? ? ? ? ? ? ? ? activityStack.get(i).finish();
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? activityStack.clear();
? ? }
? ? /**
? ? ?* 結束所有Activity
? ? ?*/
? ? public void finishAllActivityExceptByName(String cName) {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return;
? ? ? ? Activity mainActivity = null;
? ? ? ? for (Activity activity : activityStack) {
? ? ? ? ? ? if (null != activity) {
? ? ? ? ? ? ? ? if (!activity.getClass().getSimpleName().equals(cName)) {
? ? ? ? ? ? ? ? ? ? activity.finish();
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? mainActivity = activity;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? Log.d(tag, "finishAllActivityExceptByName:" + cName);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? activityStack.clear();
? ? ? ? activityStack.add(mainActivity);
? ? ? ? Log.d(tag, "activityStack.size(): " + activityStack.size());
? ? }
? ? /*****
? ? ?* 退出到指定的Activity
? ? ?*/
? ? public void goToActivityForName(String cName) {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return;
? ? ? ? for (int i = activityStack.size() - 1; i > 0; i--) {
? ? ? ? ? ? Activity activity = activityStack.get(i);
? ? ? ? ? ? if (activity == null)
? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? if (activity.getClass().getName().equals(cName))
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? activity.finish();
? ? ? ? ? ? activityStack.remove(activity);
? ? ? ? }
? ? }
? ? /*****
? ? ?*
? ? ?* @param cName
? ? ?*/
? ? public void goToActivityExcludeName(String cName) {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return;
? ? ? ? for (int i =? 0; i < activityStack.size(); i++) {
? ? ? ? ? ? Activity activity = activityStack.get(i);
? ? ? ? ? ? if (activity == null||activity.getClass().getName().equals(cName))
? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? activity.finish();
? ? ? ? ? ? activityStack.remove(activity);
? ? ? ? }
? ? }
? ? public boolean isHasActivityForName(String activityName){
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return false;
? ? ? ? for (int i =? 0; i < activityStack.size(); i++) {
? ? ? ? ? ? Activity activity = activityStack.get(i);
? ? ? ? ? ? if (activity != null&&activity.getClass().getName().equals(activityName)){
? ? ? ? ? ? ? ? return true;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return false;
? ? }
? ? /**
? ? ?* 退出應用程序
? ? ?*/
? ? public void AppExit() {
? ? ? ? try {
? ? ? ? ? ? finishAllActivity();
? ? ? ? ? ? //殺死該應用進程
? ? ? ? ? ? android.os.Process.killProcess(android.os.Process.myPid());
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }
? ? /****
? ? ?* 是否包含指定Activity
? ? ?* @param cls
? ? ?* @return
? ? ?*/
? ? public boolean isHasActivity(Class<?> cls){
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return false;
? ? ? ? for (int i =? 0; i < activityStack.size(); i++) {
? ? ? ? ? ? if (activityStack.get(i).getClass() == cls){
? ? ? ? ? ? ? ? return true;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return false;
? ? }
? ? /****
? ? ?* 是否在棧頂
? ? ?* @param cls
? ? ?* @return
? ? ?*/
? ? public boolean isTopActivity(Class<?> cls){
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return false;
? ? ? ? if (activityStack.get(activityStack.size()-1).getClass() == cls){
? ? ? ? ? ? return true;
? ? ? ? }
? ? ? ? return false;
? ? }
? ? public Stack<Activity> getActivityStack() {
? ? ? ? return activityStack;
? ? }
? ? private Stack<Activity> activityStack;
? ? private static AppManager appManager;
? ? String tag = AppManager.class.getSimpleName();
? ? private AppManager() {
? ? }
? ? /**
? ? ?* 單一實例
? ? ?*/
? ? public static AppManager getAppManager() {
? ? ? ? if (appManager == null) {
? ? ? ? ? ? appManager = new AppManager();
? ? ? ? }
? ? ? ? return appManager;
? ? }
? ? /**
? ? ?* 添加Activity到堆棧
? ? ?*/
? ? public void addActivity(Activity activity) {
? ? ? ? if (activityStack == null) {
? ? ? ? ? ? activityStack = new Stack<>();
? ? ? ? }
? ? ? ? activityStack.add(activity);
? ? }
? ? /**
? ? ?* 獲取當前Activity(堆棧中最后一個壓入的)
? ? ?*/
? ? public Activity currentActivity() {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return null;
? ? ? ? Activity activity = activityStack.lastElement();
? ? ? ? return activity;
? ? }
? ? /*****
? ? ?* 獲取前一個activity
? ? ?* @return
? ? ?*/
? ? public Activity lastActivity() {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return null;
? ? ? ? Activity activity = activityStack.elementAt(activityStack.size()-2<0?0:activityStack.size()-2);
? ? ? ? return activity;
? ? }
? ? /**
? ? ?* 結束當前Activity(堆棧中最后一個壓入的)
? ? ?*/
? ? public void finishActivity() {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return;
? ? ? ? Activity activity = activityStack.lastElement();
? ? ? ? finishActivity(activity);
? ? }
? ? /**
? ? ?* 結束指定的Activity
? ? ?*/
? ? public void finishActivity(Activity activity) {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return;
? ? ? ? if (activityStack!=null&&!activityStack.isEmpty()&&activity != null) {
? ? ? ? ? ? activityStack.remove(activity);
? ? ? ? }
? ? }
? ? /**
? ? ?* 結束指定類名的Activity
? ? ?*/
? ? public void finishActivity(Class<?> cls) {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return;
? ? ? ? for (Activity activity : activityStack) {
? ? ? ? ? ? if (activity.getClass().equals(cls)) {
? ? ? ? ? ? ? ? finishActivity(activity);
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? /**
? ? ?* 結束所有Activity
? ? ?*/
? ? public void finishAllActivity() {
? ? ? ? if (activityStack == null||activityStack.isEmpty())
? ? ? ? ? ? return;
? ? ? ? for (int i = 0, size = activityStack.size(); i < size; i++) {
? ? ? ? ? ? if (null != activityStack.get(i)) {
? ? ? ? ? ? ? ? activityStack.get(i).finish();
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? activityStack.clear();
? ? }
? ? /**
? ? ?* 結束所有Activity
? ? ?*/
? ? public void finishAllActivityExceptByName(String cName) {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return;
? ? ? ? Activity mainActivity = null;
? ? ? ? for (Activity activity : activityStack) {
? ? ? ? ? ? if (null != activity) {
? ? ? ? ? ? ? ? if (!activity.getClass().getSimpleName().equals(cName)) {
? ? ? ? ? ? ? ? ? ? activity.finish();
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? mainActivity = activity;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? Log.d(tag, "finishAllActivityExceptByName:" + cName);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? activityStack.clear();
? ? ? ? activityStack.add(mainActivity);
? ? ? ? Log.d(tag, "activityStack.size(): " + activityStack.size());
? ? }
? ? /*****
? ? ?* 退出到指定的Activity
? ? ?*/
? ? public void goToActivityForName(String cName) {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return;
? ? ? ? for (int i = activityStack.size() - 1; i > 0; i--) {
? ? ? ? ? ? Activity activity = activityStack.get(i);
? ? ? ? ? ? if (activity == null)
? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? if (activity.getClass().getName().equals(cName))
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? activity.finish();
? ? ? ? ? ? activityStack.remove(activity);
? ? ? ? }
? ? }
? ? /*****
? ? ?*
? ? ?* @param cName
? ? ?*/
? ? public void goToActivityExcludeName(String cName) {
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return;
? ? ? ? for (int i =? 0; i < activityStack.size(); i++) {
? ? ? ? ? ? Activity activity = activityStack.get(i);
? ? ? ? ? ? if (activity == null||activity.getClass().getName().equals(cName))
? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? activity.finish();
? ? ? ? ? ? activityStack.remove(activity);
? ? ? ? }
? ? }
? ? public boolean isHasActivityForName(String activityName){
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return false;
? ? ? ? for (int i =? 0; i < activityStack.size(); i++) {
? ? ? ? ? ? Activity activity = activityStack.get(i);
? ? ? ? ? ? if (activity != null&&activity.getClass().getName().equals(activityName)){
? ? ? ? ? ? ? ? return true;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return false;
? ? }
? ? /**
? ? ?* 退出應用程序
? ? ?*/
? ? public void AppExit() {
? ? ? ? try {
? ? ? ? ? ? finishAllActivity();
? ? ? ? ? ? //殺死該應用進程
? ? ? ? ? ? android.os.Process.killProcess(android.os.Process.myPid());
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }
? ? /****
? ? ?* 是否包含指定Activity
? ? ?* @param cls
? ? ?* @return
? ? ?*/
? ? public boolean isHasActivity(Class<?> cls){
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return false;
? ? ? ? for (int i =? 0; i < activityStack.size(); i++) {
? ? ? ? ? ? if (activityStack.get(i).getClass() == cls){
? ? ? ? ? ? ? ? return true;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return false;
? ? }
? ? /****
? ? ?* 是否在棧頂
? ? ?* @param cls
? ? ?* @return
? ? ?*/
? ? public boolean isTopActivity(Class<?> cls){
? ? ? ? if (activityStack==null||activityStack.isEmpty())
? ? ? ? ? ? return false;
? ? ? ? if (activityStack.get(activityStack.size()-1).getClass() == cls){
? ? ? ? ? ? return true;
? ? ? ? }
? ? ? ? return false;
? ? }
總結
以上是生活随笔為你收集整理的Activity管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 恒祥宏业做自动立体化仓库地坪抬升效果怎么
- 下一篇: 文件管理工具类