我有一个包含 3 个活动的应用程序。
我有主要活动。这将调用第二个活动,然后调用第三个活动。我想在不进入onCreate的情况下返回主活动。
这是第三个活动的代码:
startActivity(new Intent(TerceraActiviry.this, Main.class));
如果您的Activity
仍在运行,则此代码将使其显示在前面,而无需输入onCreate
Intent openMainActivity = new Intent(TerceraActiviry.this, Main.class);
openMainActivity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivityIfNeeded(openMainActivity, 0);
返回到上一个活动,您必须完成可见的活动,请使用以下命令:
finish();
如果活动是为结果启动的,则应给出结果,如下所示:
Intent intent = new Intent();
intent.putExtra(KEY_RESPONSE, responseData);
setResult(RESULT_OK, intent);
finish();
您应该使用以下方法捕获调用方活动的结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
// Test for the code you have used to start the Activity
}
}
希望对您有所帮助,Regards
你 startActivityForResult 而不是 startActivity。
请参阅安卓开发者以获取更多信息 此处.
您想要的启动模式标志是 clearTop。这将返回到主活动的上一个实例,并从活动堆栈中清除第二个和第三个活动。例如,要从代码中执行此操作:
Intent intent = new Intent(TerceraActiviry.this, Main.class));
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);