默认启动模式下
08-15 17:05:49.064 13796-13796/? W/生命周期: onCreate
08-15 17:05:49.094 13796-13796/? W/生命周期: onStart
08-15 17:05:49.094 13796-13796/? W/生命周期: onResume
08-15 17:05:53.754 13796-13796/ W/生命周期: onPause
08-15 17:05:53.774 13796-13796/ W/Main2Activity: onCreate
08-15 17:05:53.774 13796-13796/ W/Main2Activity: onStart
08-15 17:05:53.774 13796-13796/ W/Main2Activity: onResume
08-15 17:05:54.594 13796-13796/ W/生命周期: onStop
08-15 17:05:54.594 13796-13796/ W/生命周期: onDestroy
08-15 17:06:15.764 13796-13796/ W/Main2Activity: onPause
08-15 17:06:15.834 13796-13796/ W/生命周期: onCreate
08-15 17:06:15.834 13796-13796/ W/生命周期: onStart
08-15 17:06:15.834 13796-13796/ W/生命周期: onResume
08-15 17:06:16.584 13796-13796/ W/Main2Activity: onStop
08-15 17:06:16.584 13796-13796/ W/Main2Activity: onDestroy
在singleTop启动模式下
08-15 17:17:05.003 26790-26790/? W/生命周期: onCreate
08-15 17:17:05.013 26790-26790/? W/生命周期: onStart
08-15 17:17:05.013 26790-26790/? W/生命周期: onResume
08-15 17:17:10.093 26790-26790/ W/生命周期: onPause
08-15 17:17:10.123 26790-26790/ W/Main2Activity: onCreate
08-15 17:17:10.123 26790-26790/ W/Main2Activity: onStart
08-15 17:17:10.123 26790-26790/ W/Main2Activity: onResume
08-15 17:17:10.873 26790-26790/ W/生命周期: onStop
08-15 17:17:10.873 26790-26790/ W/生命周期: onDestroy
08-15 17:17:17.333 26790-26790/ W/Main2Activity: onPause
08-15 17:17:17.403 26790-26790/ W/生命周期: onCreate
08-15 17:17:17.403 26790-26790/ W/生命周期: onStart
08-15 17:17:17.403 26790-26790/ W/生命周期: onResume
08-15 17:17:18.143 26790-26790/ W/Main2Activity: onStop
08-15 17:17:18.143 26790-26790/ W/Main2Activity: onDestroy
在singleInstance启动模式下
08-15 17:18:34.913 28581-28581/? W/生命周期: onCreate
08-15 17:18:34.913 28581-28581/? W/生命周期: onStart
08-15 17:18:34.913 28581-28581/? W/生命周期: onResume
08-15 17:18:56.883 28581-28581/ W/生命周期: onPause
08-15 17:18:56.893 28581-28581/ W/Main2Activity: onCreate
08-15 17:18:56.893 28581-28581/ W/Main2Activity: onStart
08-15 17:18:56.893 28581-28581/ W/Main2Activity: onResume
08-15 17:18:57.703 28581-28581/ W/生命周期: onStop
08-15 17:18:57.703 28581-28581/ W/生命周期: onDestroy
08-15 17:19:00.123 28581-28581/ W/Main2Activity: onPause
08-15 17:19:00.203 28581-28581/ W/生命周期: onCreate
08-15 17:19:00.203 28581-28581/ W/生命周期: onStart
08-15 17:19:00.203 28581-28581/ W/生命周期: onResume
08-15 17:19:00.953 28581-28581/ W/Main2Activity: onStop
08-15 17:19:00.953 28581-28581/ W/Main2Activity: onDestroy

解决方案 »

  1.   

    要改activity生命周期只有改源码了,activity生命周期那些方法都是父类调用的,执行顺序我们无法控制,至于启动模式只是用于activity之间跳转时创建实例的方式而已,没法修改activity生命周期的
      

  2.   

    activity的生命周期都是固定的, 帮助文档已经写好的.
    启动模式,  只是控制activiy栈的.
    默认模式:  只要是startacitivity, 就会创建一个新的,放到栈顶.
    singleInstance 只允许栈中有一个activity, 其它activity都不能加入到这个栈中.
    singleTop  如果栈顶已经是需要的activity, 就不会创建新实例.
    singleTask  如果栈的任意地方有这个acitivity, 就弹出它上面的全部activity, 直到把目标activity弹到栈顶.
      

  3.   

    除非你不继承自Activity,或者更改Activity的底层源码,然后再更改Android系统的逻辑,让它在适当的生命周期时调用你的源码。听起来很牛逼是不是?简单的总结一下,不可能。这是Android系统给你定制的规则。想要生命周期有所不同,定是为了在这些你想要的不同的生命周期里去实现某些特殊的逻辑,而这些逻辑是你认为目前已有的生命周期所办不到的,对么?那你何不把你想要实现的特殊逻辑拿出来,问问大家有没有什么好的实现思路呢。
      

  4.   

    除非你不继承自Activity,或者更改Activity的底层源码,然后再更改Android系统的逻辑,让它在适当的生命周期时调用你的源码。听起来很牛逼是不是?简单的总结一下,不可能。这是Android系统给你定制的规则。想要生命周期有所不同,定是为了在这些你想要的不同的生命周期里去实现某些特殊的逻辑,而这些逻辑是你认为目前已有的生命周期所办不到的,对么?那你何不把你想要实现的特殊逻辑拿出来,问问大家有没有什么好的实现思路呢。