zoukankan      html  css  js  c++  java
  • Android生命周期例子小解

    234931075a42

    Activity 从创建到进入运行态所触发的事件

    onCreate()-->onStart-->onResume()

               从运行态到停止态所触发的事件                

    onPause()--->onStop()

                    从停止态到运行态所触发事件

    onRestart()-->onStart()--->onResume()

    从运行态到暂停态所触发事件

    onPause()

    从暂停态到运行态所触发事件

    onResume()

    根据例子来详细的介绍一下它的生命周期的过程(它所调用的方法):

    首先先看一下例子:

    Java文件有:ActivityLifeCyde.java   、  SecondLifeCyle.java、ThridLifeCyle.java 

    Xml布局文件有:main.xml、second.xml、thirid.xml

    首先是ActivityLifeCyde.java文件

    234931100aaw

    234931135e7i

    234931172i8c

    2349312199ez

    234931263lww

    SecondLifeCyle.java文件中

    23493129netp

    ThridLifeCyle.java  文件中

    2349313300dh

    Main.xml文件中

    23493136q33q

    Second.xml

    23493140awzs

    Thirid.xml文件中

    23493144op06

    要在AndroidManifest.xml文件中添加两句话

    23493166mqe5

    效果显示:

    2349314774m6

    当点击button按钮时

    234931542nhr

    点击button按钮时返回上个界面

    2349314774m6

    点击对话框按钮时出现

    23493157c330

    当点击退出按钮时

    23493161udzn

    点击取消则返回当前页面,点击确定则退出当前Activity

    下面则根据这个例子来解释一下生命周期的调用过程

    1、刚把程序运行起来的时候

    onCreate() -- onStart() -- onResume()

    2、当点击Button按钮的时候

    onPause() -- onStop() 

    也就是说 进入另外一个Activity的时候会暂停当前的Activity 并且停止

       进入到另外一个Activity的时候也会执行 1 中的过程 ,当再返回第一个Activity的时候也会执行 2 中一样的过程

    3、点击对话框按钮的时候

    onPause() 

    这个时候只会把这个Activity 暂停 ,因为出现的对话框同样也在这个Activity中,也就是说这个Activity并没有停止,所以他不会调用onStop()这个方法,更不会调用onDestory() 消灭这个Activity ,也可以理解为 当前Activity失去了焦点, 就好比 一个页面中有两个文本框:文本1和文本2   , 光标由文本1 转到文本2中 实际上就是这个过程

    4、点击对话框按钮,然后再点击返回键的时候

    onPause()  --  onResume() 

    当前暂停的Activity在暂停后再次使用的时候会调用onResume()这个方法 重新开始这个Activity

    5、点击退出按钮,如果点击取消的时候

    在这个过程中当前程序的生命周期是没有任何变化的

    6、点击退出按钮,如果点击退出按钮的时候

    onPause() -- onStop() ---  onDestroy()   

    退出的话就会把当前的activity结束并销毁掉 

    7、运行程序,再返回

    onCreate() -- onStart() -- onResume() --  onPause() -- onStop() ---  onDestroy()

    整个生命周期的调用

    8、运行程序 ,再点击手机键盘中的 小房子  的那个按钮

      onCreate() -- onStart() -- onResume() --  onPause() -- onStop()

    这个时候Activity 是没有被消灭的,只是把它暂停了,主页把这个activity覆盖了,相当于进站

    9、在8的基础上再点击进入程序

    onRestart() ---  onStart() ---  onResume()

    把这个activity从暂停的状态重新开始,调用onRestart()这个方法 ,然后再开始运行

    10、长时间点击 小房子 那个按钮

    这个动作是没有执行任何方法,只是回到了主页面

    11、在 执行了 10 的基础上,再长时间点击 小房子  那个按钮 回到activity

    onRestart() ---  onStart() ---  onResume()

    然后在ActivityLifeCyde.java 文件中添加这两个方法

    0_13234931718i8i

    12、如果在这个时候再点击  小房子 的那个键

       或

         按下电源按键(关闭屏幕显示)时

      或

         长按HOME键,选择运行其他的程序时

    onSaveInstanceState() ---  onPause() --  onStop()

    其实点击这个键 可以理解为强制性的离开当前的activity 并没有得到我的同意 ,在这个时候会执行 onSaveInstanceState () 这个方法 保存当前activity的进度 ,就好比你在手机上看小说,突然来了一个电话,手机会保存小说的进度,当你接完电话的时候小说会读取你接电话之前的进度

    13、在执行了 12 的基础上 再进入这个程序中

    onRestart() ---  onStart() ---  onResume()

    复苏,重新开始

    onSaveInstanceState方法和onRestoreInstanceState方法不一定是成对的被调用的,onRestoreInstanceState被调用的前提是,activity 确实被系统销毁了

  • 相关阅读:
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    微信小程序TodoList
    C语言88案例-找出数列中的最大值和最小值
    C语言88案例-使用指针的指针输出字符串
  • 原文地址:https://www.cnblogs.com/kinglongdai/p/8329302.html
Copyright © 2011-2022 走看看