美文网首页
【原创】Activity个人总结

【原创】Activity个人总结

作者: nanteschen | 来源:发表于2018-11-10 14:26 被阅读0次

    Activity任务栈

    Android中管理Activity的方式:Activity任务栈
    Activity的四种状态:
    Active:当前Activity处在栈顶+可见+可交互
    Paused:当前Activity可见但不可交互,处于失焦状态。比如当Activity被另一个非全屏Activity覆盖时。
    Stopped:当前Activity被完全覆盖
    Killed:被回收


    Activity任务栈.png

    如图所示,对于不是处在栈顶的Activity,随时可能被回收

    Activity生命周期

    Activity生命周期.png

    onSaveInstanceState:
    当系统存在“未经许可”杀死Activity时调用,适合在这里保存瞬时数据,不适合保存持久化数据。

    特别注意:当从ActivityB按Back键返回ActivityA时不会调用onSaveInstanceState方法,因为这是在“用户许可”的情况下杀死Activity

    未经许可的几种情况:
    1.当用户按下HOME键时
    2.长按HOME键切换其他App时
    3.关闭屏幕时
    4.ActivityA启动ActivityB时
    5.屏幕旋转/改变语言时

    onRestoreInstanceState:
    只有在Activity“确实”被系统销毁了才会走
    也就是说,onSaveInstanceState和onRestoreInstanceState调用不是对称的

    Activity启动模式

    standard
    singleTop:如果目标不在栈顶才会重复创建一个
    singleTask:根据TaskAffinity去找有没有对应的任务栈,如果在对应任务栈中存在该Activity就把它上面的其他Activity都清除
    singleInstance:一个Activity独享一个任务栈(独占性)

    注意

    设置了singleInstance和singleTask的Activity具有全局唯一性,即同一时刻在Android系统中只能存在该Activity的一个实例

    相关文章

      网友评论

          本文标题:【原创】Activity个人总结

          本文链接:https://www.haomeiwen.com/subject/msuzxqtx.html