Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Activity 堆栈相关处理方法

Activity 堆栈相关处理方法

作者头像
Demo_Yang
发布于 2018-10-15 08:21:32
发布于 2018-10-15 08:21:32
69700
代码可运行
举报
文章被收录于专栏:yang0rangeyang0range
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  private static Stack<Activity> mActivityStack;
  
  /**
     * 添加Activity到堆栈
     */
    public void addActivity(Activity activity) {
        if (mActivityStack == null) {
            mActivityStack = new Stack<Activity>();
        }
        mActivityStack.add(activity);
    }

    /**
     * 获取栈顶Activity(堆栈中最后一个压入的)
     */
    public Activity getTopActivity() {
        Activity activity = mActivityStack.lastElement();
        return activity;
    }

    /**
     * 结束栈顶Activity(堆栈中最后一个压入的)
     */
    public void killTopActivity() {
        Activity activity = mActivityStack.lastElement();
        killActivity(activity);
    }

    /**
     * 结束指定的Activity
     */
    public void killActivity(Activity activity) {
        if (activity != null) {
            mActivityStack.remove(activity);
            activity.finish();
            activity = null;
        }
    }

    /**
     * 结束指定类名的Activity
     */
    public void killActivity(Class<?> cls) {
        for (Activity activity : mActivityStack) {
            if (activity.getClass().equals(cls)) {
                killActivity(activity);
            }
        }
    }

    /**
     * 结束所有Activity
     */
    public void killAllActivity() {
        if (Tools.isEmpty(mActivityStack)) {
            return;
        }
        for (int i = 0, size = mActivityStack.size(); i < size; i++) {
            if (null != mActivityStack.get(i)) {
                mActivityStack.get(i).finish();
            }
        }
        mActivityStack.clear();
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.03.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android项目实战(三十七):Activity管理及BaseActivity的实现
Ps:7-10月 完成公司两个app项目上架。漏掉的总结 开始慢慢补上。 一、写一个Activity的管理类 1、单例模式,以栈(先进后出)的形式存储Activity对象 public class AppManager { private static Stack<Activity> activityStack; // Activity栈 , 先进后出 private static AppManager instance; /** * 单例模式实例 */
听着music睡
2018/05/18
1.1K0
Activity统一堆栈管理
在我们App运行时,可能在某个界面需要退出App,如果你没有把之前的Activity都finish掉的话(每次跳转都把前一个Activity finish掉,虽然可以实现,但本人不建议这种写法,因为有的Activity需要反复调用,不能每一次都取create),那么当你点击返回键的时候,并不能实现直接退出,这种时候,就需要我们对Activity做一个统一的管理。
程思扬
2022/01/10
4180
Android退出应用方法总结
1.在打开每个Activity时,将他们加到一个栈中,退出时finish掉所有栈中Activity。
张拭心 shixinzhang
2022/05/06
1.2K0
Android--关闭某个指定activity
最近项目中有这样的需要,在关闭当前Activity同时关闭前面两个Activity,不涉及到应用的退出。自己想了一些方案,也查了一些资料,做个笔记吧。
Android技术干货分享
2019/04/17
5.3K0
Android--关闭某个指定activity
Android退出应用程序方法总结[通俗易懂]
在Android开发中,我们运行了应用程序后,都需要退出应用的,那么该如何退出应用,又都有哪些实现方式呢?今天就为大家整理分享一些退出应用程序的方法,一起来看看吧!
全栈程序员站长
2022/09/09
4.2K0
ActivityManager 管理Activity[通俗易懂]
参考:https://www.jianshu.com/p/063fae89206b https://blog.csdn.net/qq_38520096/article/details/82109948 https://blog.csdn.net/lanye11/article/details/52221359
全栈程序员站长
2022/10/04
7210
安全退出app,activoty栈管理
前言 由于一个同学问到我如何按照一个流程走好之后回到首页,我以前看到过4个解决方案,后来发现有做个记录和总结的必要,就写了这篇博文。(之前看小强也写过一篇,这里通过自身的分析完整的总结一下以下6种方案,并加上一个DEMO便于大家了解大体流程) 在android的用户交互中,按钮触发的意图(Intent)跳转会为你重新打开新的一个界面活动(Activity),对于之前的界面根据需求进行摧毁(Finish())或则保留。 如果一个交互流程中,是从A开始,按照A - B - C - D - A这样的顺序进行
xiangzhihong
2018/01/30
9760
安全退出app,activoty栈管理
安卓activity管理器
悲剧就是把有价值的东西毁灭给人看。——鲁迅 其实原理就是一个list,使用AOP在创建时添加,销毁时移除 package com.ruben.utils; import android.app.Activity; import android.os.Build; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors;
阿超
2022/08/16
6200
android的activity栈管理
在进行BlackBerry程序开发的时候,BlackBerry提供了一个管理Screen的栈,用来从任何地方来关闭位于最上一层的Screen,使用UiApplication.getUiApplication().getActiveScreen()来得到位于最上一层的Screen的实例,并且使用UiApplication.getUiApplication().popScreen()来关闭一个Screen或关闭当前最上一层的Screen,但是Android却未提供相应的功能,只能在一个Activity的对象里面
xiangzhihong
2018/01/29
1.4K0
关于 Android 实现滑动返回的几种方法总结
关于 Android 实现滑动返回的方法,网上有很多种,实现的方式也都各不一样。有用 SwipeBackLayout 开源库的,有用 SlidingPaneLayout 控件的,有通过使用 GestureDetector 手势识别的类的,也有写一个基类的,还有一些其他的实现方法。总之,实现滑动返回的方法各种各样,但同样也各有千秋。在这里,我主要对以下几种方法进行了学习,并一一实现。(注意:我这次 Demo 是在 MaterialsDesign 的基础上进行编写代码的,不过这并不影响这几种方法的实现,你可以到
非著名程序员
2018/02/02
5.1K0
关于 Android 实现滑动返回的几种方法总结
activty栈管理
题外话:我们有时在开发中,通常会有如下的需求:屏幕1-->屏幕2-->屏幕3-->屏幕4...,现在需要直接从屏幕4-->屏幕1,很多人会想到对activity进行管理得到对应的id什么的,我这里说一个方法,在转到屏幕4之前将屏幕2和3关闭,那么就可以实现我们的需求了,下面是具体的实现 我们要在进行BlackBerry程序开发的时候,BlackBerry提供了一个管理Screen的栈,用来从任何地方来关闭位于最上一层的Screen,使用UiApplication.getUiApplication().g
xiangzhihong
2018/01/30
4940
activity详解_activity教程
Activity可以获取运行中的应用信息,可以获取到servcie,process,app,memory,Task信息等。
全栈程序员站长
2022/10/04
1.2K0
android 退出APP
在onCreate() 中将Activity 实例 放到 线性容器中,,,, 退出时,一顿 ((Activity)list.gert(i)).finsh();
全栈程序员站长
2022/09/09
9250
深入探究 Android Activity 启动模式:CLEAR_TOP 与 NEW_TASK 实战解析
一、探究 FLAG_ACTIVITY_CLEAR_TOP 和 FLAG_ACTIVITY_NEW_TASK 的行为及其应用场景
陆业聪
2024/08/05
8380
深入探究 Android Activity 启动模式:CLEAR_TOP 与 NEW_TASK 实战解析
[置顶] Activity 不只有跳转。功能篇(一)
standard,SingleTask,SingleTop,SingleInstance
cMusketeer
2022/03/11
1.2K0
[置顶]
        Activity 不只有跳转。功能篇(一)
从0系统学Android--2.6 Activity 的最佳实践
这个其实很简单,就是新建一个 BaseActivity ,然后让这个类继承 AppCompatActivity,并重写 onCreate() 方法:
开发者
2019/12/26
5670
从0系统学Android--2.6 Activity 的最佳实践
Android finish All activity
android开发中如何结束所有的activity 一、每一个activity都有自己的生命周期,被打开了最终就要被关闭。 四种结束当前的activity方法 //关闭当前activity方法一 finish(); //关闭当前界面方法二 android.os.Process.killProcess(android.os.Process.myPid()); //关闭当前界面方法三 System.exit(0); //关闭当前界面方法四 this.onD
用户3004328
2018/09/06
2.1K0
引入ActivityStackManager 栈管理
前言:最近在小米商店上架应用时发现,在小米云测上,小米note高配版  在使用System.exit(0)时会报错,通不过Monkey 测试。找了一段时间才发现这个System.exit(0)在小米的Rom上会失效。所以引入了ActivityStackManager 栈管理,调用getManager().finishAllActivity()就能顺利通过小米应用商店的monkey测试了。
用户4458175
2020/02/12
7220
退出多个activity的方法
简而言之,通过单例模式把每个Activity 的引用添加到一个全局链表中,每次退出程序调用System.exit(0)时,先调用链表中Activity 的finish方法 
全栈程序员站长
2022/07/19
6270
相关推荐
Android项目实战(三十七):Activity管理及BaseActivity的实现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验