⚠️注意:在API22的情况下验证通过,在API18/19 上均验证失败
很多博客里说,在LaunchMode设置为SingleTask之后,是调用方的onActivityResult会在打开的瞬间被调用,无法取得正常的结果,因此来验证一下。
概括
以下大写字母均表示为Activity.
->代表startActivity =>代表startActivityForResult
第一个场景:
A=>B A打开B,并需求返回值
B=>C B打开C,并需求返回值
C->B C打开B(准确来说是返回A打开的B)
因此,我需要将B设置为SingleTask,那么在C打开B的时候,直接将B置为栈顶,并将C出栈,达到效果。
Demo代码
MainActivity
public class MainActivity extends AppCompatActivity {
public static final int REQUEST_CODE_SECOND_ACTIVITY = 0x1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void start(View view) {
startActivityForResult(new Intent(this,SecondActivity.class), REQUEST_CODE_SECOND_ACTIVITY);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode){