Android启动模式FLAG_ACTIVITY_CLEAR_TOP

发布时间:2025-12-09 12:04:39 浏览次数:1

关于这个问题,我试了一下。

例: A,B,C,D四个Activity,启动模式均为默认,依次启动,在D中启动B。

  1. 添加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);
  1. 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();

160747.html

flag_activity_clear_top
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477