大家好,又见面了,我是你们的朋友全栈君。
关于这个问题,我试了一下。
例: A,B,C,D四个Activity,启动模式均为默认,依次启动,在D中启动B。
-
添加intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
效果:C会被清除出栈;然后B被finish掉,重新启动;D被销毁。重走生命周期,不会走onNewIntent()方法
Intent intent = new Intent(this, TestBActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
- intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP)
效果:C会被清除出栈;会调用B的onNewIntent()方法,不重新启动
Intent intent = new Intent(this, TestBActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
参考:Android 启动模式FLAG_ACTIVITY_CLEAR_TOP
重新启动:
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
context.overridePendingTransition(0, 0);
context.finish();
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160747.html原文链接:https://javaforall.net