首页 > 其他分享 >横竖屏切换,按home键,按返回键,锁屏与解锁屏幕,跳转透明Activity界面,启动一个 Theme 为 Dialog 的 Activity,弹出Dialog时Activity的生命周期

横竖屏切换,按home键,按返回键,锁屏与解锁屏幕,跳转透明Activity界面,启动一个 Theme 为 Dialog 的 Activity,弹出Dialog时Activity的生命周期

时间:2024-07-30 18:26:32浏览次数:17  
标签:onResume 调用 Activity onStart onPause Dialog 跳转

A->B
横竖屏切换:A 走完 ondestory 才会走B的onCreate --会走pause
按home键:本质上就是普通开B
按返回键: 也是开B 但是会走关A
锁屏与解锁屏幕:普通
跳转透明Activity界面:会走pause 但是不会走onstop
启动一个 Theme 为 Dialog 的 Activity: 会onPause 不会stop
弹出Dialog时Activity的生命周期:不会变

Ai 答案:
在Android开发中,横竖屏切换、按Home键、按返回键、锁屏与解锁屏幕、跳转透明Activity界面、启动一个Theme为Dialog的Activity,以及弹出Dialog时,都会对Activity的生命周期产生影响。下面是对这些场景下Activity生命周期变化的概述:

  1. 横竖屏切换
    当前Activity:会先调用onSaveInstanceState(Bundle outState)来保存当前状态,然后调用onPause()、onStop()和onDestroy()。接着,根据新的屏幕方向,系统会重新创建Activity实例,并调用onCreate(Bundle savedInstanceState)、onStart()和onResume()。
    其他Activity(如果有):如果当前Activity是唯一的,则不会有影响;如果还有其他Activity在栈中,则它们的状态不会改变。
  2. 按Home键
    当前Activity:会调用onPause()和onStop()。此时Activity仍然保留在任务栈中,但不再可见。
    其他Activity:无影响。
  3. 按返回键
    当前Activity:会调用onPause()、onStop()和onDestroy()。然后,栈中的上一个Activity(如果存在)会调用onRestart()、onStart()和onResume()。
    上一个Activity(如果有):会从onStop()状态回到onRestart()、onStart()和onResume()。
  4. 锁屏与解锁屏幕
    锁屏:当前Activity会调用onPause()(如果它处于前台),然后调用onStop()。
    解锁屏幕:如果之前锁屏时该Activity处于任务栈的顶部,则会调用onRestart()、onStart()和onResume()来恢复它。如果用户在锁屏期间打开了其他应用,则可能需要根据具体情况判断。
  5. 跳转透明Activity界面
    当前Activity:会调用onPause()。
    透明Activity:会依次调用onCreate(Bundle savedInstanceState)、onStart()、onResume()。
    当从透明Activity返回时,当前Activity会调用onRestart()(如果它之前因为跳转而被停止了)、onStart()和onResume()。
  6. 启动一个Theme为Dialog的Activity
    当前Activity:会调用onPause()。
    Dialog Activity:虽然它以Dialog的形式展示,但它仍然是一个完整的Activity,会依次调用onCreate(Bundle savedInstanceState)、onStart()、onResume()。
    当Dialog Activity关闭时,当前Activity会调用onResume()。
  7. 弹出Dialog时
    当前Activity:在弹出Dialog时,Activity的生命周期不会改变。Dialog是依附于Activity的,所以不会触发Activity的生命周期回调。
    Dialog:Dialog的显示和隐藏是通过show()和dismiss()方法控制的,它们不会影响Activity的生命周期。
    总结来说,Activity的生命周期受到多种用户行为和系统事件的影响,理解这些变化对于开发稳定、高效的应用至关重要。

标签:onResume,调用,Activity,onStart,onPause,Dialog,跳转
From: https://blog.csdn.net/meishuang2306/article/details/140767580

相关文章

  • Android9.0 Activity启动流程分析(三)
    文章目录   1、Android屏幕层级       1.1、Window和PhoneWindow的概念       1.2、View和ViewRootImpl的概念   2、ClientLiftCycleManager   3、handleLaunchActivity       3.1、CreatActivity       3.2、setContentView   4......
  • 将 Dialogflow 用于公司网站聊天机器人是否是行业标准?
    我正在为公司网站开发聊天机器人,并且正在考虑使用Dialogflow。Dialogflow在业界是否普遍用于此目的?此外,任何人都可以向我指出一个很好的示例项目或源代码,用于使用Dialogflow创建聊天机器人吗?非常感谢!我正在研究不同的工具来创建一个工具,包括Dialogflow、Langchain+GP......
  • Android 8.0 源码分析 (四) Activity 启动
    链接:https://juejin.cn/post/6844903983442558989前言我们熟知一般Android工程师都是在应用层上���发,不会涉及系统源码,但是如果你想往底层发展,或者深入插件化、Framework系统层等开发工作,如果不了解Android源码可是不行的,那么接下来我基于自己的理解跟学习来记录跟Android......
  • 深入理解Activity启动流程和AMS框架(三)
    链接https://cloud.tencent.com/developer/article/1601480续:深入理解Activity启动流程和AMS框架(一)深入理解Activity启动流程和AMS框架(二)5、Task和LauncherMode(1)、如何才能开始一个新的Task?Intent中定义了一个标志FLAGACTIVITYNEW_TASK,在startActivity的Intent参数中加入该......
  • 深入理解Activity启动流程和AMS框架(一)
    链接https://mp.weixin.qq.com/s?__biz=MzIwNjQ1NzQxNA==&mid=2247484149&idx=1&sn=fea623b475af3f05c657c1e55e3c478f&chksm=97201ddca05794cab15fa098ffb0ce4b5ca7791e1023e0e87969d89e0dbcfce28327ac9221e8&scene=21#wechat_redirect一、前言一个App是怎么启动......
  • 深入理解Activity启动流程和AMS框架(二)
    链接https://mp.weixin.qq.com/s?__biz=MzIwNjQ1NzQxNA==&mid=2247484150&idx=1&sn=4007a9cff85df88941e73869b89b1ed4&chksm=97201ddfa05794c9e33c8d0d9e83f407922d24282dc9bd8d67c72debf9713abb1b0586f00bc9&scene=21#wechat_redirect续 深入理解Activity启动流程......
  • 如何跳转到一个巨大的文本文件中的特定行?
    下面的代码是否有任何替代方案:startFromLine=141978#orwhateverlineIneedtojumptourlsfile=open(filename,"rb",0)linesCounter=1forlineinurlsfile:iflinesCounter>startFromLine:DoSomethingWithThisLine(line)linesCo......
  • chapter3------保护模式之从保护模式跳转回实模式
    1、准备合适的段选择子在保护模式下,段寄存器存储的是段选择子,而不是实际的段地址。要切换到实模式,需要准备一个适当的段选择子,它指向实模式下要访问的代码段。示例程序:LABEL_DESC_NORMAL:Descriptor0,0ffffh,DA_DRW;Normal描述符SelectorNormaleq......
  • android[activity过渡动画不正确,不执行,效果不对?]style配置方式
    单个配置activity或者application全局配置<stylename="translucent"parent="Theme.MaterialComponents.Light.NoActionBar"><itemname="android:windowNoTitle">true</item><itemname="android:windowTitleSize&qu......
  • 抖音私信卡片跳转微信教程
    以下是使用W外链制作抖音私信卡片跳转微信的一般教程:  ​**步骤一:准备工作**1.注册并登录W外链平台账号。2. 并获取相关的链接或二维码。**步骤二:创建跳转链接**1.在W外链平台中,选择创建新的跳转链接。2.输入您的微信公众号或小程序的链接。**步骤三:生成私信卡片**......