1. 程式人生 > >StartActivityForResult啟動模式在不同場景下的不同結果

StartActivityForResult啟動模式在不同場景下的不同結果

這裡寫圖片描述

這裡寫圖片描述
在4.4 singleTask加taskaffinity也能新建任務棧

這裡寫圖片描述
4.4,Main3設定singleInstance,則建立新的任務棧

一,使用startActivityForResult
在4.4:
1.啟動一個正常的LaunchMode是standard的activity ,可以接收到resultOK
2.啟動一個有NEW_TASK的flag的activity(如設定singleTask(即使沒設定affnity,和啟動activity在同一個棧中也是不能成功),或者singleInstance的,都不能正常接收的result.返回result_Cancel)
PS:這時候的newTask標籤(singleTask設定taskAffnity或singleInstance模式)能正常開啟新的task棧
在5.0以上手機:
1.只要是通過startActivityForResult啟動的activity,不管啟動的activity的flag屬性及launchMode,一律作為sub_activity,放在啟動者當前的任務棧中,接受到的result是成功的
2.啟動者的模式即使是singleInstance,被啟動的activity仍然會放到同一個棧中。
二,使用startActivity即使用startActivityForResult(requestCode = -1)
1.在4.4:
表現均一樣。
2.在5.0+: