我有3个窗口(活动)。 window1按钮与旧图片,window2选项更改window1的旧图片,window3预览图片。
当在window3中进行选择时,我想跳过相当的window2 + window3并跳回window1。我们怎么能这样做?
窗口1:
Intent MyRotationsAddPicture2 = new Intent(getBaseContext(), MyRotationsAddPicture.class);
MyRotationsAddPicture2.putExtra("Title", "r2.jpg");
startActivityForResult(MyRotationsAddPicture2,0);
Window2 / Window3?
String whichImage = getIntent().getExtras().getString("Title");
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == 0) {
finish();
startActivity(getIntent());
}
}
setResult(0);
this.finish();
System.exit(0);
答案 0 :(得分:1)
从您想要的内容来看,您不想在此使用startActivityForResult()
...只需使用startActivity()
。
在Activity3
中使用
Intent intent = new Intent(Activity3.this, Activity1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
如果您不想从堆栈中删除Activity2
,请使用此项。
如果你想从堆栈中删除Activity2
,只需使用标志
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT|Intent.FLAG_ACTIVITY_CLEAR_TOP);
移动到finish()
时,或致电Activity2
中的Activity3
您可以找到所有Intent Flags
Here in the Docs
答案 1 :(得分:1)
您可以使用标志FLAG_ACTIVITY_FORWARD_RESULT,在Window1中保留相同的代码。
在Window2中,启动Window3
Intent i = new Intent(this, Window3.class);
i.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startActivity(i);
finish();
在Window3中设置结果,但不要调用System.exit(0)
。您将在Window1 onActivityResult
中获得结果。