Android 堆栈式管理Activity
来源:互联网 发布:c语言判断水仙花数程序 编辑:程序博客网 时间:2024/05/21 19:45
import android.app.Activity;import java.util.Stack;/** * Created on Android Studio. * User: Sunday * Time: 2016/12/22 16:01 * Email: * TODO activity堆栈式管理 */public class AppManager { private static Stack<Activity> activityStack; public AppManager() { } /** * 单一实例 */ public static AppManager getInstance() { return SingleApp.INSTANCE; } public static class SingleApp { public static AppManager INSTANCE = new AppManager(); } /** * 添加Activity到堆栈 */ public void addActivity(Activity activity) { if (activityStack == null) { activityStack = new Stack<Activity>(); } activityStack.add(activity); } /** * 移除Activity */ public void removeActivity(Activity activity) { activityStack.remove(activity); } /** * 获取指定的Activity */ public static Activity getActivity(Class<?> cls) { if (activityStack != null) for (Activity activity : activityStack) { if (activity.getClass().equals(cls)) { return activity; } } return null; } /** * 获取当前显示Activity(堆栈中最后一个传入的activity) */ public Activity getLastActivity() { Activity activity = activityStack.lastElement(); return activity; } /** * 获取所有Activity */ public Stack<Activity> getAllActivityStacks() { return activityStack; } /** * 结束指定的Activity */ public void finishActivity(Activity activity) { if (activity != null) { if (!activity.isFinishing()) { activity.finish(); activityStack.remove(activity); } } } /** * 结束指定类名的Activity */ public void finishActivity(Class<?> cls) { for (Activity activity : activityStack) { if (activity.getClass().equals(cls)) { finishActivity(activity); break; } } } /** * 结束除当前传入以外所有Activity */ public void finishOthersActivity(Class<?> cls) { if (activityStack != null) for (Activity activity : activityStack) { if (!activity.getClass().equals(cls)) { activity.finish(); } } } /** * 结束所有Activity */ public void finishAllActivity() { if (activityStack != null) for (Activity activity : activityStack) { activity.finish(); } activityStack.clear(); } /** * 退出应用程序 */ public void AppExit() { try { finishAllActivity(); android.os.Process.killProcess(android.os.Process.myPid());// 杀死该应用进程 System.exit(0); } catch (Exception e) { } }}示例二
package com.jh.rental.user.view;import android.app.Activity;import android.app.Application;import com.jh.rental.user.model.HttpVolley;import com.jh.rental.user.presenter.huanxin.HxChat;import com.jh.rental.user.utils.jason.BaseContext;import com.zhy.autolayout.config.AutoLayoutConifg;import java.util.Stack;/** * Created by 骏辉出行 on 2017/5/12. */public class BaseApplication extends Application { public static Stack<Activity> activities=null; @Override public void onCreate() { super.onCreate(); if (activities==null){ activities=new Stack<Activity>(); } if (BaseContext.context==null){ BaseContext.context=BaseApplication.this.getApplicationContext(); HxChat.initContext(BaseContext.context); } } public static void finishActivity(){ activities.pop().finish(); } public static void addActivity(Activity context){ if (activities==null){ activities=new Stack<>(); } activities.push(context); } public static Activity currentActivity(){ return activities.lastElement(); } public static void exit(){ HttpVolley.getInstance().cancelPendingRequests(); if (activities==null){ return; } for (int i = 0; i <activities.size() ; i++) { activities.get(i).finish(); } activities=null; System.exit(0); } public static void getMainActivity(){ if (activities==null){ return; } for (int i = activities.size()-1; i>1 ; i--) { activities.pop().finish(); } } public static void getLoginActivity(){ if (activities==null){ return; } for (int i = activities.size()-1; i>0 ; i--) { activities.pop().finish(); } }}
阅读全文
0 0
- Android 堆栈式管理Activity
- Android 堆栈式管理Activity
- activity堆栈式管理
- Activity堆栈式管理
- activity堆栈式管理
- activity堆栈式管理
- Android-activity堆栈及管理
- Android技术揭秘之activity堆栈管理
- Android activity堆栈及管理实例详解
- activity堆栈管理
- Activity堆栈管理详解
- Activity堆栈管理
- activity 堆栈管理
- Activity堆栈管理
- Activity堆栈管理
- Activity堆栈管理
- Activity堆栈管理
- Android学习之 Activity堆栈管理与控制
- sql字段大小写转换
- linux之cut命令的用法
- RabbitMQ原理及实现
- Java String intern() 和 String Pool
- 基于注解的关联关系Hibernate(1)——引入知识
- Android 堆栈式管理Activity
- 比特币开发专题(数字货币原理理解及应用实例)
- ArcGIS地图抽稀
- C语言:条件表达式
- 多图上传+springMVC简单实现
- css预加载
- 【Java基础之Java IO】代码库(一)
- Scala Actor,receive不断接收消息,react复用线程,结合case class的actor,Future使用,使用Actor进行wordCount
- 网易2017秋招编程题集合