学习android开发遇到的一个问题
情况1:.现在我从activity1点击按钮到activity2 ,然后点退回按键,这个时候activity1是被onrestart,activity2被ondestroy
情况2:现在我从activity1点击按钮到activity2,然后按activity2中的按钮带activity1,这时一个新的activiity1被oncreat 还不是onrestart
我就想问情况2中是不是已经有两个activity1了,新的activity1和原来 activity1有关系吗?他们各自独立?共享一些资源?还是和任意两个activity的关系一样?
如果我的程序写成这样的无尽循环中,会出现什么风险? 展开
你的问题没办法准确回答,在此我作出以下解释,希望你能明白。
首先你应该了解什么是回退栈(在此只是附一张图,不细解释)。
下面附上一张生命周期图:
其次activity的生命周期你要领悟。就拿你说的来说假设Activity A,ActivityB;
A跳转B有两种情况
第一种:B完全遮挡住了A,则A的生命周期oncreat(),onstart(),onResume(),onPause(),onStop();
当退出B时,A执行onRestart(),onStart(),onResune();
第二种:B没有完全遮挡住A,则A的生命周期为oncreat(),onstart(),onResume(),onPause()
当退出B时执行onResune()
你这个问题 A跳转B此时后退栈有2个Activity,从栈底到栈顶顺序为A-B。
再从B跳转到A此时后退栈3个Activity,从栈底到栈顶顺序为A-B-A;
A在栈顶。此时等于是重新打开了一个Activity所以会重新执行一个新的生命周期oncreat,onStart........
启动Activity有四种不同的启动模式,每种模式都有不同的效果(主要表现在后退栈);
四种模式你就自己查查吧。困了睡觉