0

我在 Android A、B、C、D 中有一个包含多个活动的应用程序。我有一个关于后堆栈的问题。

A->B->C->D 这是一个正常的顺序。

我的问题是:当我在活动 D 中按下后退按钮时,我必须转到活动 B,而不是返回活动 C。由于 ActivityC 有一些我想保存的 imageView,我不想使用 noHistory 来破坏 ActivityC。可以这样做

A1->B1->C1->D1

后堆栈应该是: D1->B1->A1 。C1 保存了一些 imageView,如果 C1 再次启动,C1 中的 imageView 将包含相同的图像。是否可以只修改 ActivityC 中的代码?

谢谢你

4

3 回答 3

0

使用活动的onActivityResult()方法:-

这是它的工作原理 -

开始时使用startActivityForResult()方法activity

当你回去的时候
Activity D——写完之前——

Intent i = getIntent();
setResult(RESULT_OK);
finish();

D已完成c's onActivityResult()并将被调用 - 保存您的数据并finish()使用上述方法调用,它将转到B's onActivityResult()

于 2017-03-22T06:55:19.880 回答
0

您应该finish()在活动 D 开始之后调用活动 C

startActivity(intent);
finish()
于 2017-03-22T06:49:10.813 回答
0

处理每个活动的 onBackPressed()。这样在按 D 后,它将重定向到 B,然后类似于 A。

于 2017-03-22T06:53:29.707 回答