zoukankan      html  css  js  c++  java
  • activity的生命周期及启动模式

    activity的生命周期:
    onCreate(),onStart(),onResume(),onPause(),onRestart(),onStop(),onDestory()
    对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行:onStart()

    当打开一个activity时,调用onCreate()->onStart()->onResume(),如果已经创建,不用调用onCreate(),当打开另一个activity后,一样的步骤,当它遮住原先的activity时,原先的activity会调用onPause()隐藏,当重新返回原先的activity时,第二个activity,onStop()->onDestory();第一个activity如果没有销毁的话,会直接调用onRestart(),否则需重新建立

    横竖屏切换时候 activity 的生命周期:
    1、不设置 Activity 的 android:configChanges 时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
    2、设置 Activity 的 android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
    3、设置 Activity 的 android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行 onConfigurationChanged 方法

    4种 activity 的启动模式:
    1.standard: 标准模式,一调用 startActivity()方法就会产生一个新的实例。
    2.singleTop: 如果已经有一个实例位于 Activity 栈的顶部时, 就不产生新的实例, 而只是调用Activity 中的 newInstance()方法。如果不位于栈顶,会产生一个新的实例。
    3.singleTask: 会在一个新的 task(工作任务) 中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。
    4.singleInstance: 这个跟 singleTask 基本上是一样, 只有一个区别: 在这个模式下的Activity实例所处的 task 中,只能有这个 activity实例,不能有其他的实例。

  • 相关阅读:
    [ios][swift]提示框,并自动消失
    [ios][switf]页面跳转
    [ios][swift]UIButton
    [ios][swift]文本框UITextField用法
    html分割线
    html里 调整字间距
    php数字补零的两种方法
    PHP格式化数字和SMARTY格式化数字的方法
    CSS控制文字,超出部分显示省略号
    指定DIV局部刷新的简单实现,很简单,但是网上搜到的大部分都很复杂
  • 原文地址:https://www.cnblogs.com/jiuqing/p/4138701.html
Copyright © 2011-2022 走看看