kotlin实现最简单的activity栈管理工具类(代码片段)

事在人为,幸福从不抱怨开始! 事在人为,幸福从不抱怨开始!     2022-12-11     323

关键词:

/**
 * Activity栈任务管理器
 * 通常放在我们自定义Activity的基类中操作
 */
class AcitivityManager private constructor() 

    private val activityStack: Stack<Activity> = Stack()

    companion object 
        val instance: AcitivityManager by lazy  AcitivityManager() 
    

    /**
     * 添加Activity
     */
    fun addActivity(activity: Activity) 
        activityStack.add(activity)
    

    /**
     * 移出存在的Activity
     */
    fun removeActivity(activity: Activity) 
        if (activityStack.contains(activity)) 
            activity.finish()
            activityStack.remove(activity)
        
    

    /**
     * 获取最上面的Activity
     */
    fun getTopActivity(): Activity 
        return activityStack.lastElement()
    

    /**
     * 清除Activity栈
     */
    fun clearActivity() 
        for (activity in activityStack) 
            activity.finish()
        
        activityStack.clear()
    

    /*
        退出应用程序
     */
    fun exitApp(context: Context) 
        //先清除Activity
        clearActivity()
        val activityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
        //再killProcesses
        activityManager.killBackgroundProcesses(context.packageName)
        System.exit(0)
    


在Activity的基类中使用

class BaseActivity:Activity() 
    override fun onCreate(savedInstanceState: Bundle?) 
        super.onCreate(savedInstanceState)
        //onCreate中入栈
        AcitivityManager .instance.addActivity(this)
    

    override fun onDestroy() 
        super.onDestroy()
        //onDestroy中入移除
        AcitivityManager .instance.removeActivity(this)
    

kotlin实现简单的学生信息管理系统(代码片段)

文章目录一、实验内容二、实验步骤1、页面布局2、数据库3、登录活动4、增删改查三、运行演示四、实验总结五、源码下载一、实验内容根据Android数据存储的内容,综合应用SharedPreferences和SQLite数据库实现一个用户信息管理... 查看详情

kotlin实现简单音乐播放器(代码片段)

...AndroidStudio实现音乐播放器2.0一、实验目的理论知识掌握Kotlin面向对象的软件开发方面的基础知识。巩固前期Activity、UI控件的使用。掌握Service和BroadcastReceiver的特点及用法。专业技能熟悉Android软件开发环境并掌握具体的工具的使... 查看详情

kotlin简单的recyclerview(代码片段)

kotlin实现RecyclerView效果如下:activity_list.xml......<androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/mRecyclerView"android:layout_width="match_parent"an 查看详情

android中的activity详解--启动模式与任务栈

参考技术A目录activity的简单介绍就不写了,作为最常用的四大组件之一,肯定都很熟悉其基本用法了。首先,是都很熟悉的一张图,即官方介绍的Activity生命周期图.情景:打开某个应用的的FirstActivity调用方法如下:由于之前已... 查看详情

kotlin使用registeractivitylifecyclecallbacks管理activity的切换(代码片段)

使用方法:自定义应用的Application,在onCreate()方法里注册“使用”classMyApplication:Application()......overridefunonCreate()super.onCreate() 查看详情

android总结之activity

...:onCreate()需要判空,onRestoreInstanceState不需要。启动模式简单来说就是定义Activity实例与Activity任务栈的关联方式。目的:设置方式:有哪些启动模式?TaskAffinity(任务相关性),这个参数标识了一个Activity所需要的任务 查看详情

activity基础-任务栈(代码片段)

...户交互的一些activity那什么是任务栈呢?android任务栈简单了解android任务栈又称为Task,它是一个栈结构,具有后进先出的特性,用于存放我们的Activity组件。我们每次打开一个新的Activity或者退出当前Activity都会在... 查看详情

android返回堆栈管理打印android中当前运行的activity任务栈信息|activity任务栈信息分析|activity在相同stack中的不同task(代码片(代码片段)

文章目录一、打印Android中当前运行的Activity任务栈信息二、Activity任务栈信息分析三、Activity在相同Stack的不同Task情况一、打印Android中当前运行的Activity任务栈信息使用如下命令,打印Android手机中的Activity栈:adbshelldumpsysactivityactivit... 查看详情

获取当前栈顶的activity

...xff1f;总的步骤是:1.得到当前运行环境(context)的Activity管理器;2.通过Activity管理器得到当前的任务栈信息;3.从任务栈中获得栈顶的Activity的名称。ActivityManagermanager=(ActivityManager)mContext.getSystemServ 查看详情

kotlin学习随笔一-简单需求和项目初始化

Kotlin是对Java的一个简练的封装,提供了很多便利性的语法,熟练使用后,会大大缩减代码的行数,提高编码的速度。具体Kotlin的优劣,网上很多评论,有兴趣的可以去看看,我们开始我们简单的demo开发。需求:最简单的用户的C... 查看详情

Kotlin 类的调用方法

】Kotlin类的调用方法【英文标题】:CallmethodfromKotlinclass【发布时间】:2017-01-2205:27:12【问题描述】:我有一个utilKotlin类,我在其中设置工具栏标题、隐藏或显示工具栏取决于片段:classMyToolbarUtils()funhideToolbar(activity:Activity)(activi... 查看详情

activiti工作流的简单介绍

...定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现。” 2.工作流的主要实现功能  工作流管理系统(WorkflowManagementSystem,WfMS)是一个软件系统,它完成工作量的定义和管... 查看详情

一个纯kotlin的开源工具类app

这里分享一个本人写的开源工具应用这是一个纯Kotlin的项目,可以用于查看系统安装的所有应用的详细信息,包括应用包名、版本号、apk大小、首次安装时间、最后更新时间、apk路径、签名md5值等并且可以查看当前系统顶层Activi... 查看详情

activity的launchmode和任务栈小结

...用程序当前任务栈之间的关系。一个应用程序当前任务栈管理着应用程序的activity集合的Activity归属和Activity间的交互。开发者想要开发的App拥有良好的交互,因此,深入对Activity的launchM 查看详情

kotlin实现从底部自定义像activity一样的全屏弹窗的功能(代码片段)

实现:主工程项目要导入的第三方项目library,如下图:温馨提示:第三方项目library里面的不同弹窗有很多:从顶部弹窗、从底部弹窗、自由定位弹窗、自定义全屏弹窗、显示旋转弹窗(动画)…,适合工作,你想改什么样的弹窗... 查看详情

kotlin实现在activity中间弹出的list列表弹窗的功能(代码片段)

实现:主工程项目要导入的第三方项目library,如下图:温馨提示:第三方项目library里面的不同弹窗有很多:从顶部弹窗、从底部弹窗、自由定位弹窗、自定义全屏弹窗、显示旋转弹窗(动画)…,适合工作,你想改什么样的弹窗... 查看详情

react+redux官方实例todo从最简单的入门--查

上一篇文章《改》实现了,最后一个功能--《查》!这个查是稍微要复杂一点的功能,官方实现的就是一个过滤数组的效果,然后展示出来,这里有3个状态,all,completed,active。要实现这三个状态之前,我们需要提前实现一个功... 查看详情

rubyonrails全栈课程3.8权限管理之超级管理员审批功能实现

...做权限控制,不过我们项目的权限管理不通过这个gem插件实现,通过控制用户角色字段来控制权限,这样灵活性比较大。1、功能描述(1)普通用户:可以发布帖子、删除自己发的帖子、发布评论、删除自己发的评论(2)管理员... 查看详情