关闭。这个问题需要细节或清晰。它目前不接受答案。**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
上个月关门了。改进这个问题我只想完成某些活动(3。和4.)并将数据发送到2。活动。我该怎么做?
wlsrxk511#
您有两个选择:1.使用 startActivityForResult() 在这种情况下, Activity2 应该启动 Activity3 使用 startActivityForResult() . 结果将返回给 Activity2 打电话给 onActivityResult() .什么时候 Activity3 发布 Activity4 它应该使用 startActivity() 并且应该设置 Intent.FLAG_ACTIVITY_FORWARD_RESULT 在 Intent 打电话给我 finish() .什么时候 Activity4 准备返回数据时,应调用 setResult() 用数据然后 finish() . 这将把结果返回给 Activity2 .2.使用 FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP 在这种情况下, Activity2 应该启动 Activity3 使用 startActivity() . Activity3 应该启动 Activity4 使用 startActivity() .什么时候 Activity4 准备返回数据时,应创建 Intent ,然后执行以下操作:
startActivityForResult()
Activity2
Activity3
onActivityResult()
Activity4
startActivity()
Intent.FLAG_ACTIVITY_FORWARD_RESULT
Intent
finish()
setResult()
FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP
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() .
onNewIntent()
uujelgoq2#
有两种方法。套 noHistory="true" 对于启动时清单或意图标志中的活动3。在这种情况下,当您从4单击后退时,应用程序将直接转到2,因为3不在后堆栈中。使用android启动模式。您可以将活动1、2和4放在一个堆栈上,将活动3放在另一个堆栈上。浏览本页了解启动模式。https://developer.android.com/guide/components/activities/tasks-and-back-stack
noHistory="true"
2条答案
按热度按时间wlsrxk511#
您有两个选择:
1.使用
startActivityForResult()
在这种情况下,Activity2
应该启动Activity3
使用startActivityForResult()
. 结果将返回给Activity2
打电话给onActivityResult()
.什么时候
Activity3
发布Activity4
它应该使用startActivity()
并且应该设置Intent.FLAG_ACTIVITY_FORWARD_RESULT
在Intent
打电话给我finish()
.什么时候
Activity4
准备返回数据时,应调用setResult()
用数据然后finish()
. 这将把结果返回给Activity2
.2.使用
FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP
在这种情况下,Activity2
应该启动Activity3
使用startActivity()
.Activity3
应该启动Activity4
使用startActivity()
.什么时候
Activity4
准备返回数据时,应创建Intent
,然后执行以下操作:这将导致
Activity3
以及Activity4
从任务堆栈中删除onNewIntent()
将在的现有示例上调用Activity2
.Activity2
应该覆盖onNewIntent()
并且可以从传递给的参数中的“extras”中检索返回的数据onNewIntent()
.uujelgoq2#
有两种方法。
套
noHistory="true"
对于启动时清单或意图标志中的活动3。在这种情况下,当您从4单击后退时,应用程序将直接转到2,因为3不在后堆栈中。使用android启动模式。您可以将活动1、2和4放在一个堆栈上,将活动3放在另一个堆栈上。
浏览本页了解启动模式。
https://developer.android.com/guide/components/activities/tasks-and-back-stack