zoukankan      html  css  js  c++  java
  • android面试总结01 activity生命周期

    面试常常会被问到的:

    Q:能说一下Activity的生命周期吗?

    Activity生命周期例如以下:

    onCreat

    onStart

    onResume

    onPause

    onStop

    onDestory

    外加一个 onRestart

    就像图示一样,当一个activity第一次启动时会调用的函数各自是

    onCreat

    onStart

    onResume方法

    此时activty会正常执行

    当出现如图所看到的。屏幕弹出一个dialog遮住activity而且activity失去焦点时,但这是activity还显示一部分时。

    会调用onPause,当dialog dismiss时activity又又一次回到前台会调用onResume方法。


    第二种情况,即A activtiy跳转到另外一个B activity,第一个A activity被全然覆盖时会调用

    onPause onStop方法,当从B activity返回时,假设此时A activity未被销毁(普通情况下不会被销毁),

    会分别调用 onRestart  onStart  onResume方法。

    然后activity进入正常执行状态。


    这大致就是面试中常回答activity生命周期调用方法。

    以下再加一个onCreat(Bundle savedInstanceState)

    savedInstanceState什么时候会用到呢 ?


    比如当用户在上图搜索框中输入了“美女”,但这是用户清理内存将这个进程干掉了,我们希望用户进入这个activity界面保存着这个搜索框中的内容怎么做呢

    这时候能够调用这种方法

    @Override
    protected void onSaveInstanceState(Bundle savedInstanceState)
    {
    super.onSaveInstanceState(savedInstanceState);
    savedInstanceState.putString("keyText", searchEditText.getText().toString());
    }


    在onCreat方法中运行下列语句

    if (savedInstanceState != null)
    {
    keyText = savedInstanceState.getString("keyText’");

                            searchEditText.setString(keyText);

    }

    就可以。

  • 相关阅读:
    API接口的安全设计验证—ticket,签名,时间戳
    能上QQ,浏览器不能上网?
    jQuery 获取元素当前位置offset()与position()
    USB Type-C工作原理解析
    利用SVN工具下载OpenCore代码
    内存数据保存到文件
    oracle07
    oracle06
    oracle05
    oracle04--伪列
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/6980027.html
Copyright © 2011-2022 走看看