【发布时间】:2017-10-23 20:12:08
【问题描述】:
我有一个带有 3 个片段的 MainActivity 类(每个片段都在自己的类中) 我的第三个片段(LoginFragment)将允许登录一个用户,然后转到一个新活动(新 Intent),其中包含该用户的一些信息,例如产品。
如果我按回那个 Intent 将返回到 LoginFragment。
我重写了@OnBackPressed 来启动MainActivity:
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
this.finish();
我需要知道如何用 MainActivity 中的 LauncherFragment(Fragment 1)替换那个 Fragment。
我有这个解决方案,但根据设备需要 0.5 秒到 1-2 秒
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
this.finish();
如果想完成第三个片段,直接转到片段 1 会很酷,谢谢 :)
【问题讨论】:
-
你在真机上测试这段代码吗?
-
@DavidHackro 在 Nexus 6p 和模拟器上是的,如果我理解这些标志将重新创建片段,这就是延迟
-
如果设备需要 1-2 秒来创建片段或启动活动,则出现问题。
-
@JeffreyBlattman 我的 Nexus6p 是 0.5 秒或更快,但这是一个很好的设备,那么其他 80% 速度较慢的设备呢
标签: java android android-fragments android-intent