仅完成某些活动并发送数据
Finishing only certain activities and sending data
我只想完成某些活动(3. 和 4.)并将数据发送给 2.activity。我该怎么做?
有两种方法可以做到这一点。
在清单或意图标志中为 activity 3 设置 noHistory="true"
发射。在这种情况下,当您从
4 app会直接去2,因为3不在back stack中
使用 android 启动模式。您可以将 Activity 1,2 和 4 放在一个堆栈上,然后
activity 3 个在不同的堆栈上。
浏览此页面以了解启动模式。
https://developer.android.com/guide/components/activities/tasks-and-back-stack
您有 2 个选择:
1.使用 startActivityForResult()
在这种情况下,Activity2
应该使用 startActivityForResult()
启动 Activity3
。在对 onActivityResult()
.
的调用中,结果将 returned 为 Activity2
当 Activity3
启动 Activity4
时,它应该使用 startActivity()
并且应该在 Intent
中设置 Intent.FLAG_ACTIVITY_FORWARD_RESULT
并调用 finish()
。
当Activity4
准备好return数据时,它应该用数据调用setResult()
,然后finish()
。这会将 return 结果变为 Activity2
.
2。使用 FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP
在这种情况下,Activity2
应该使用 startActivity()
启动 Activity3
。
Activity3
应使用 startActivity()
.
启动 Activity4
当 Activity4
准备好 return 数据时,它应该创建一个包含数据的 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()
并且可以从传递给 onNewIntent()
.
的参数中的“extras”中检索 returned 数据
我只想完成某些活动(3. 和 4.)并将数据发送给 2.activity。我该怎么做?
有两种方法可以做到这一点。
在清单或意图标志中为 activity 3 设置
noHistory="true"
发射。在这种情况下,当您从 4 app会直接去2,因为3不在back stack中使用 android 启动模式。您可以将 Activity 1,2 和 4 放在一个堆栈上,然后 activity 3 个在不同的堆栈上。
浏览此页面以了解启动模式。
https://developer.android.com/guide/components/activities/tasks-and-back-stack
您有 2 个选择:
1.使用 startActivityForResult()
在这种情况下,Activity2
应该使用 startActivityForResult()
启动 Activity3
。在对 onActivityResult()
.
Activity2
当 Activity3
启动 Activity4
时,它应该使用 startActivity()
并且应该在 Intent
中设置 Intent.FLAG_ACTIVITY_FORWARD_RESULT
并调用 finish()
。
当Activity4
准备好return数据时,它应该用数据调用setResult()
,然后finish()
。这会将 return 结果变为 Activity2
.
2。使用 FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP
在这种情况下,Activity2
应该使用 startActivity()
启动 Activity3
。
Activity3
应使用 startActivity()
.
Activity4
当 Activity4
准备好 return 数据时,它应该创建一个包含数据的 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()
并且可以从传递给 onNewIntent()
.