繁体   English   中英

在Android中启动其他活动时如何完成活动?

[英]How to finish Activity when starting other activity in Android?

我之前完成活动时遇到问题。 我想开始另一个活动并完成当前的活动。 当我使用finish它没有退出当前活动。

我怎样才能退出活动?

你需要intent当前的context ,以另一个活动先用startActivity 之后,您可以从重定向的位置finish当前的activity

 Intent intent = new Intent(this, FirstActivity.class);// New activity
 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 startActivity(intent);
 finish(); // Call once you redirect to another activity

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) - 清除活动堆栈。 如果您不想清除活动堆栈。 请不要使用那个标志。

Intent i = new Intent(this,NewLaunchingActivity.Class);
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // Call Only, if you dont want to come back to this activity on back press, else ignore this line
    startActivity(i);
    finish();

最好的——也是最简单的——解决方案可能是这样的:

Intent intent = new Intent(this, OtherActivity.class);
startActivity(intent);
finishAndRemoveTask();

finishAndRemoveTask()文档:

当您的活动完成并且应该关闭并且任务应该作为完成任务的根活动的一部分被完全删除时调用它。

这就是你要找的吗?

  1. 在清单文件中launchMode = "singleInstance"您的活动 A: launchMode = "singleInstance"
  2. 当用户点击new时,做FirstActivity.fa.finish(); 并调用新的 Intent。
  3. 当用户点击修改时,调用新的 Intent 或简单地完成活动 B。
startActivity(new Intent(context, ListofProducts.class)
    .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
    .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
    .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK));

例如:您正在使用两个活动,如果您想从活动 A 切换到活动 B

像这样简单地给予。

          Intent intent = new Intent(A.this, B.class);
         startActivity(intent);
         finish();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM