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

    返回栈

    安卓是用Task来管理活动的,一个任务就是一组存放在栈里的活动集合,这个栈也成为返回栈  (Back Stack)      --后进先出的数据结构
    finish()或者back 可以销毁一个活动,处于栈顶的出栈。栈底为    启动活动的 activity
     

    活动状态: 1.运行状态        2.暂停状态    3.停止状态    4.销毁状态

    运行(1)     活动  位于        栈顶
    暂停(2)  活动 不在 栈顶,但可见       占用屏幕的部分区域
    停止(3)     活动 不在  栈顶,不可见
    销毁(4)     活动  从返回栈中    移除
     

    活动的生存期:   1.onCreate()  2.onStart()  3.onResume()  4.onPause()  5.onStop()  6.onDestroy()  7.onRestart()

    onCreate()  (1)在此方法中完成初始化操作:如 加载布局    绑定事件    
     
    onStart()   (2)活动由     不可见变为可见                的时候调用
     
    onResume() (3)活动准备好       和用户进行交互         的时候调用
     
    onPause()  (4)系统准备去  启动或者恢复一个活动     的时候调用
     
    onStop()     (5)活动   完全不可见            的时候调用
     
    onDestroy()  (6)活动   销毁               的时候调用
     
    onRestart()   (7)活动  重新启动             的时候调用
     
    完整生存期:1-6    在onCreate()中完成初始化操作, onDestroy()中完成释放内存操作
     
    可见生存期:2-5   活动对用户是可见的,就算是 不能交互,onStart()中  资源加载   ,onStop()中   资源释放 --------可 保证停止的活动不会占用过多内存
     
    前台生存期:3-4   活动总是处于运行状态可交互
     
    onStop()  和  onPause()   的区别:若启动一个对话框,onPause()会执行,onStop()不会-----------------启动对话框时只被占用了一小部分屏幕的原因
     
    问题::在     活动A     上又启动   活动B    ,A会被停止 ,内存不足时A被回收,当B  back   返回时   A是ReStart()吗?
    答案:不是,A将重新调用   onCreate() 重新初始化资源
     
    由于上面的原因,用户体验差,出现了saveInstanceState()方法来保存数据,在onCreate()中调用相应的取值方法就可取出数据
     
     
     
     
     
     
  • 相关阅读:
    [原创]Java开发如何在线打开Word文件
    [原创]Java开发在线打开编辑保存Word文件(支持多浏览器)
    [原创]java操作word(一)
    [原创]java对word文档的在线打开
    修改ZEN CART系统遇到的问题总结(不断更新)
    MYSQL 5.1 插入空值BUG 解决方法
    zen cart 安装 商品批量管理插件(easy_populate_v1257_utf8)出现的问题
    C# 区分无线网卡和有线网卡的MAC
    C# Flash的背景透明处理
    c#Windows服务
  • 原文地址:https://www.cnblogs.com/acg88688/p/9392039.html
Copyright © 2011-2022 走看看