我有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);

最佳答案

从外观上看,您不想在这里使用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

09-28 09:54