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 确实被系统销毁了

  • 相关阅读:
    [rabbitmq] python版本(二) 工作队列
    [rabbitmq] python版本(一)HelloWorld
    rabbitmq安装上手
    leetcode1 两数之和
    mybatis学习笔记(一)入门上手
    神经网络简介
    hexo+github pages搭建个人博客
    简单RTSCamera实现
    数据结构复习:树
    LINQ
  • 原文地址:https://www.cnblogs.com/kinglongdai/p/8329302.html
Copyright © 2011-2022 走看看