本文共 1592 字,大约阅读时间需要 5 分钟。
早上突然想起:activity切换的时候生命周期是什么来着?
Activity A跳转到Activity B,然后B再跳到A;
A;onCreat-start-resume
然后 onpause-B oncreat还是onPuse-onStop-B onCreat??????
what a fuck? 这都忘了?
那就实际测试一遍再学一次吧。
1.先打印A启动时的生命周期:
08-28 22:17:15.508 26493-26493/com.yosemite.testmvp E/onCreate: =-=08-28 22:17:15.616 26493-26493/com.yosemite.testmvp E/onStart: =-=08-28 22:17:15.616 26493-26493/com.yosemite.testmvp E/onResume: =-=恩,没问题,这个没错,还是记忆中的味道
2.然后,关键的地方来了,跳转中的生命周期,是B先onResume A再onStop,还是A先onStop?
输出生命周期,log中带2的表示Activity B
08-28 22:17:40.830 26493-26493/com.yosemite.testmvp E/onPause: =-=08-28 22:17:40.840 26493-26493/com.yosemite.testmvp E/22onCreate: =-=08-28 22:17:40.852 26493-26493/com.yosemite.testmvp E/22onStart: =-=08-28 22:17:41.086 26493-26518/com.yosemite.testmvp E/Surface: getSlotFromBufferLocked: unknown buffer: 0xe844938008-28 22:17:41.465 26493-26493/com.yosemite.testmvp E/onSaveInstanceState: =-=08-28 22:17:41.465 26493-26493/com.yosemite.testmvp E/onStop: =-=恩,这下记住了,B在onResume后,A才会onStop,
3.然后,我们再看B返回到A,到这里,猜想应该是,B onPause--A onRestart onResume--B onStop-onDestroy?
那就再输出一下好了:
8:03.859 26493-26493/com.yosemite.testmvp E/22onPause: =-=08-28 22:18:03.874 26493-26493/com.yosemite.testmvp E/onRestart: =-=08-28 22:18:03.874 26493-26493/com.yosemite.testmvp E/onStart: =-=08-28 22:18:03.874 26493-26493/com.yosemite.testmvp E/onResume: =-=08-28 22:18:04.093 26493-26518/com.yosemite.testmvp E/Surface: getSlotFromBufferLocked: unknown buffer: 0xe844946008-28 22:18:04.315 26493-26493/com.yosemite.testmvp E/22onStop: =-=08-28 22:18:04.315 26493-26493/com.yosemite.testmvp E/22onDestroy: =-=是的,果然如此。
转载地址:http://ifrci.baihongyu.com/