我之前完成活动有问题。我想开始另一个活动并完成当前活动。当我使用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 wants to clears the activity stack else ignore it.
startActivity(i);
finish();
Intent.FLAG_ACTIVITY_CLEAR_TOP
如果要清除活动堆栈,请添加 Intent Flag ,否则忽略它。在此处阅读有关此内容的更多信息。
最好的 - 也是最简单的 - 解决方案可能是这样的:
Intent intent = new Intent(this, OtherActivity.class);
startActivity(intent);
finishAndRemoveTask();
文档finishAndRemoveTask()
:
当您的活动完成并应该关闭时调用它,并且作为完成任务的根活动的一部分,该任务应该被完全删除。
那是你要找的吗?
launchMode = "singleInstance"
FirstActivity.fa.finish();
并调用新的 Intent。startActivity(new Intent(context, ListofProducts.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK));
一个简单的例子可以是(Kotlin)
val intent = intent(this,exampleSecondActivity::class.java)
startActivity(intent)
finsih() //this will do all the work for you
当我从启动活动导航到主屏幕时,它对我有用
例如:您正在使用两个活动,如果您想从活动 A 切换到活动 B
像这样简单地给。
Intent intent = new Intent(A.this, B.class);
startActivity(intent);
finish();