笔记

1.在一些极端情况下,比如内存不够时,android系统会去回收掉优先级比较低的activity.这时会调到onsveInstanceInstance,重新恢复会调到onRestoreInstanceState,这时需要在onSaveInstanceState里面做一些数据保存工作,然后在onRestoreInstanceState里面去恢复.或者也可以在onCreate里面去恢复.2者的不同点是在onCreate里面要去判断存储的bundle是否为null,而onRestoreInstanceState则不需要.如果走到onRestoreInstanceState,则bundle一定不为空.

2.singleTask模式的Activity切换到栈顶会导致在它之上的栈内activity出栈

3.即使是2个任务栈的activity A,B,如果A 启动了B,若B的启动模式为标准模式,则B会创建一个新的实例(注意不是原来的B)然后加入到A所在的任务栈栈顶.

4.MainActivity-1->ActivityA-2->ActivityB-3->ActivityC-4->(addFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP))-->ActivityA,1,2,3次跳转都是普通的跳转,ActivityA-C的launchMode都是stardard模式,则等最后一跳第4跳,跳转到ActivityA后,此时按返回键直接跳转到MainActivity,这就是Intent.FLAG_ACTIVITY_CLEAR_TOP的作用,由于使用了该flag跳转,处于ActivityA同一栈的所有Actiivty都要出栈

你可能感兴趣的:(笔记)