欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > Android Activity 启动模式

Android Activity 启动模式

2024/10/27 0:18:10 来源:https://blog.csdn.net/u013491829/article/details/143055156  浏览:    关键词:Android Activity 启动模式

Standard 启动模式

页面跳转顺序

MainActivity -> StandardActivity -> StandardActivity -> StandardActivity

页面栈 示例图 

任务栈中只存在MainActivity时

 

任务栈中存在MainActivity、StandardActivity

  

MainActivity -> StandardActivity 

 MainActivity -> StandardActivity -> StandardActivity 

MainActivity -> StandardActivity -> StandardActivity -> StandardActivity

通过ActivityManager查看页面栈

通过以下函数获取任务栈ID 、栈中Activity数量栈底Activity、栈顶Activity、栈中所有Activity

import android.app.Activity
import android.app.ActivityManager
import android.content.Context
import android.util.Log
import java.util.LinkedListclass Util {companion object {private val tag = Util::class.simpleNameval inactiveActivities = LinkedList<Activity>()@JvmStaticfun getAllActivity(context: Context) {val activityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager?val taskList = activityManager!!.getRunningTasks(1) // todo 获取最近运行的1个任务for (taskInfo in taskList) {// todo 获取栈顶Activityval topComponentName = taskInfo.topActivity// todo 获取栈底Activityval baseComponentName = taskInfo.baseActivity// todo 获取栈中Activity 数量val numActivity = taskInfo.numActivities// todo 获取任务IDval taskId = taskInfo.taskIdLog.i(tag, "$tag 当前任务栈...... 任务ID\t$taskId")Log.i(tag, "$tag 当前任务栈...... 栈中Activity数量\t$numActivity")if (baseComponentName != null) {Log.i(tag, "$tag 当前任务栈...... 栈底Activity:\t${baseComponentName.className}")}if (topComponentName != null) {Log.i(tag, "$tag 当前任务栈...... 栈顶Activity:\t${topComponentName.className}")}// todo 栈中所有Activity名称val activities= getInactiveActivities()Log.i(tag, "$tag 当前任务栈...... 所有Activity:\t$activities")Log.i(tag, "$tag 当前任务栈.....................................................")}}// todo 获取栈中所有Activity@JvmStaticfun getInactiveActivities(): List<Activity> {return inactiveActivities.toList()}}
}

注册监听所有Activity的事件

Application.ActivityLifecycleCallbacksApplication中的一个接口,调用registerActivityLifecycleCallbacks方法即可完成注册。用于全局监听每个Activity的生命周期、判断app前后状态等作用。

import android.app.Activity
import android.app.Application
import android.os.Bundle
import com.start.util.Utilclass MyApplication : Application() {override fun onCreate() {super.onCreate()registerActivityLifecycleCallbacks(object : ActivityLifecycleCallbacks {override fun onActivityResumed(activity: Activity) {}override fun onActivityPaused(activity: Activity) {}override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {// todo 当Activity创建时,添加到列表中if (!Util.inactiveActivities.contains(activity)) {Util.inactiveActivities.add(activity)}Util.getAllActivity(baseContext)}override fun onActivityStarted(activity: Activity) {}override fun o

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com