# YmActivityStack **Repository Path**: ym521/ym-activitystack ## Basic Information - **Project Name**: YmActivityStack - **Description**: 自定义Android栈管理 - **Primary Language**: Android - **License**: Zlib - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-04-16 - **Last Updated**: 2025-03-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: ActivityStack ## README # YmActivityStack #### 介绍 YmActivityStack是一个自定义的activity栈管理,便于在实际开发中实时对activity的掌握,例如在需要全局弹窗时,不知道当前在哪个activity, 可以通过YmActivityStack.currentActivity()来获取当前的所显示的activity; 在一些后台服务运行时需要了解当前自身的APP是否在前台运行, 不在前台运行后台的service是无法唤起所需的activity; 您只需要在一个循环的任务中一直回调 (注意:建议在主线程上执行)YmActivityStack.isForeground()判断APP 是否在运行在前台就可以实现自己的需求功能。 #### 功能实现 1. ###### 初始化: ```kotlin class MyApplication : Application() { override fun onCreate() { super.onCreate() YmActivityStack .init(this) } } ``` 2. ###### 获取当前activity: ```kotlin YmActivityStack .currentActivity() ``` 3. ###### 销毁当前activity(栈顶) ```kotlin YmActivityStack .popActivity() ``` 4. ###### 销毁所有没有被销毁的activity(栈中) ```kotlin YmActivityStack .popAllActivity() YmActivityStack .popAllActivity(isFinish) ``` 5. ###### 销毁指定的activity(栈顶) ```kotlin YmActivityStack .popActivity(Activity) YmActivityStack .popActivity(Class) ``` 6. ###### 判断当前APP是或者在前台运行 ```kotlin YmActivityStack .isForeground() ``` 7. ###### 栈底 注解标识(@StackBottom) ```kotlin @StackBottom class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } } ``` 一般用于主界面、登录界面;用于打开被注解的activity时 关闭未finish的所以activity 8. ###### 重启APP restartApp ```kotlin YmActivityStack .restartApp() ``` #### 依赖配置 1. ###### 添加jitpack 仓库 Android Gradle Plugin 为 v7.1.0 以下版本:进入项目根目录,打开 “build.gradle” 文件,在 “allprojects” 中加入如下代码: ```xml ... allprojects { repositories { maven { url 'https://jitpack.io' } mavenCentral() google() } } ``` 当您的 Android Gradle Plugin 为 v7.1.0 或以上版本:进入项目根目录,打开 “settings.gradle” 文件,在 “dependencyResolutionManagement” 中加入如下代码: ```xml ...dependencyResolutionManagement{ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { maven { url 'https://jitpack.io' } mavenCentral() google() } } ``` 2. ###### 添加依赖 [![](https://jitpack.io/v/com.gitee.ym521/ym-activitystack.svg)](https://jitpack.io/#com.gitee.ym521/ym-activitystack) ```gradle implementation 'com.gitee.ym521:ym-activitystack:latest version' ```