zoukankan      html  css  js  c++  java
  • Activity生命周期

    Activity的生命周期

    Activity的基本生命周期如下代码 所示:

    Java代码

    public

    class MyActivity extends Activity {

    protected void onCreate(Bundle savedInstanceState);

    Protected void onStart();

    Protected void onResume();

    Protected void onPause();

    Protected void onStop(); 

    Protected void onDestroy();

    }

    你自己写的Activity会按需要 重载这些方法,onCreate是免不了的,在一个Activity正常启动的过程中,他们被调用的顺序是 onCreate -> onStart -> onResume, Activity被干掉的时候顺序是onPause -> onStop -> onDestroy ,这样就是一个完整的生命周期,但是有人问了 ,程序正运行着呢来电话了,这个程序咋办?中止了呗,如果中止的时候新出的一个Activity是全屏的那么:onPause->onStop ,恢复的时候onStart->onResume ,如果打断 这个应用程序的是一个ThemeTranslucent 或者Dialog Activity那么只是onPause ,恢复 的时候onResume 

    详细介绍一下这几个方法中系统在做什么以及我们应该做什么:

    onCreate: 在这里创建界面 ,做一些数据 的初始化工作

    onStart: 到这一步变成用户可见不可交互 的

    onResume: 变成和用户可交互 的,(activity 栈系统通过栈的方式管理这些个

    Activity的最上面,运行完弹出栈,则回到上一个Activity)

    onPause: 到这一步是可见但不可交互 的,系统会停止动画 等消耗CPU 的事情

    从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候

    你的程序的优先级降低,有可能被系统收回。在这里保存的数据,应该在

    onResume里读出来,注意:这个方法里做的事情时间要短,因为下一

    activity不会等到这个方法完成才启动

    onstop: 变得不可见 ,被下一个activity覆盖了

    onDestroy: 这是activity被干掉前最后一个被调用方法了,可能是外面类调用finish

    法或者是系统为了节省空间将它暂时性的干掉,可以用isFinishing()来判断它,如果你有一个Progress Dialog在线程中转动,请在onDestroy里把他cancel掉,不然等线程结束的时候,调用Dialogcancel方法会抛异常的。

    onPauseonstop, onDestroy,三种状态下 activity都有可能被系统干掉

  • 相关阅读:
    mojo 接口示例
    MojoliciousLite: 实时的web框架 概述
    接口返回json
    centos 6.7 perl 版本 This is perl 5, version 22 安装DBI DBD
    centos 6.7 perl 5.22 安装DBD 需要使用老的perl版本
    商业智能改变汽车行业
    商业智能改变汽车行业
    读MBA经历回顾(上)目的决定手段——北漂18年(48)
    perl 升级到5.20版本
    Group Commit of Binary Log
  • 原文地址:https://www.cnblogs.com/xingyyy/p/4331675.html
Copyright © 2011-2022 走看看