android singleTask的那些坑

前提:A、B两个Activity launchMode都为singleTask,启动顺序为A->B->A

1.在4.x手机上,在A再次位于栈顶时,不会触发A的onCreate方法,而是触发A的onNewInstance,同时由于B已经出栈,在A页面点击返回按键时,不会走B的onActivityResult。(常规理解)
2.对于5.x及以上手机,若A和B的启动方式都为startActivity,则同4.x。若B启动A方式为startActivityForResult,则启动新的A,触发A的onCreate,而非onNewInstance,此时栈内为ABA,栈内出现了两个A。

在两个循环页面(A可跳转B,B也可跳转A)的处理时,没有必要将两个都设为SingleTask,可将先启动的A设置为SigleTask模式,B为singleTop,依然可以保证避免页面死循环的现象出现

你可能感兴趣的:(android singleTask的那些坑)