java—只完成某些活动并发送数据

i7uq4tfw  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(320)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

上个月关门了。
改进这个问题

我只想完成某些活动(3。和4.)并将数据发送到2。活动。我该怎么做?

wlsrxk51

wlsrxk511#

您有两个选择:
1.使用 startActivityForResult() 在这种情况下, Activity2 应该启动 Activity3 使用 startActivityForResult() . 结果将返回给 Activity2 打电话给 onActivityResult() .
什么时候 Activity3 发布 Activity4 它应该使用 startActivity() 并且应该设置 Intent.FLAG_ACTIVITY_FORWARD_RESULTIntent 打电话给我 finish() .
什么时候 Activity4 准备返回数据时,应调用 setResult() 用数据然后 finish() . 这将把结果返回给 Activity2 .
2.使用 FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP 在这种情况下, Activity2 应该启动 Activity3 使用 startActivity() . Activity3 应该启动 Activity4 使用 startActivity() .
什么时候 Activity4 准备返回数据时,应创建 Intent ,然后执行以下操作:

Intent intent = new Intent(this, Activity2.class);
intent.addFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP |
               Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
finish();

这将导致 Activity3 以及 Activity4 从任务堆栈中删除 onNewIntent() 将在的现有示例上调用 Activity2 . Activity2 应该覆盖 onNewIntent() 并且可以从传递给的参数中的“extras”中检索返回的数据 onNewIntent() .

uujelgoq

uujelgoq2#

有两种方法。
noHistory="true" 对于启动时清单或意图标志中的活动3。在这种情况下,当您从4单击后退时,应用程序将直接转到2,因为3不在后堆栈中。
使用android启动模式。您可以将活动1、2和4放在一个堆栈上,将活动3放在另一个堆栈上。
浏览本页了解启动模式。
https://developer.android.com/guide/components/activities/tasks-and-back-stack

相关问题