我有3个屏幕:A,B,C 从A开始,我使用Intent切换到B,从B切换到C.
如何从C切换回A(C和B都必须被销毁,A是我正在处理的屏幕)?
答案 0 :(得分:1)
这是为了让你从C
回到A而被解雇的方法的顺序A - startActivityForResult
B - startActivityForResult
C - finish()
B - onActivityResult, finish()
A - onActivityResult
根据您是否需要结果,只需startActivity
& finish
答案 1 :(得分:0)
1)再次启动活动A,在C中使用清除堆栈:
Intent intent = new Intent(getContext(), A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
2)你可以为结果启动B和C,然后在'onActivityResult'中关闭它们:
例如在B中,当你想要启动C
时Intent intent = new Intent(context,C.class);
startActivityForResult(intent, 1000);
当你想退出时,在 Intent intent = new Intent();
intent.putExtra("should_exit",true);
setResult(RESULT_OK,intent);
finish();
和B(已经落后于C)
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == 1000) {
boolean shouldExit = data.getBooleanExtra("should_exit", false);
if (shouldExit)
finish();
}
}
}