android艺术探索第一章-activity生命周期

常规启动模式七种 明白每个过程做什么

oncreat 1
onstart 2
onrestart 3
onresme 4
onpause 5
onstop 6
ondestory 7

  • 注意点 按back键回退时,执行顺序 5 6 4
  • 弄清楚 onstart 和onresume的区别
  • 对于a启动b,是a的onpouse先执行还是b的onresume先执行,为什么
  • onpouse中不能做耗时操作不然会影响到下个activity的onresume过程造成卡顿

异常情况下生命周期怎么走

  1. 横竖屏切换
    数据是通过调用 onsaveInstancestate这个方法来进行保存的;横竖屏切换时,所有该走的流程都会重新走一遍;
    可以通过menifest里面指定 configChanges==”orientation|screenSize”避免;

  2. 内存不足时优先级比较低的activity被杀死
    一般来说前台可见>可见非前台(activity弹出dialog时)>后台

activity的四种启动模式

  • standard 标准模式,记住不能通过applicationcontext启动Activity,因为applicationcontext没有任务栈,错误示例如下

    1
    startActivity(new Intent(getApplicationContext(),SecondActivity.class));
  • singleTop 当位不位于栈顶时不会复用,位于栈顶时才会复用

  • singleTask 栈内单例模式,当同一栈内需要启动,都会进行复用,而且会把它上面的Activity全部强制出栈,如果不是同一栈需要启动,它是会重新创建的
  • singleInstance 这是上面的加强版,栈内栈外都只有一个实例,系统会为它单独建一个栈.
  • activity如何进行设置启动模式 主要分成xml和设置标记位,后者的优先级一般大于前者 P26得出结论 singletask模式的activity切换到栈顶会导致在他之上的activity出栈;

1.什么是启动activity所需的任务栈

自行查阅

2.activity的标记位

一般和xml里面的启动模式相对应不过就是少了一个singleInstance

IntentFilter 显示和隐式启动