Android startActivityForResult和子活动启动另一个活动

时间:2011-06-06 19:16:52

标签: android android-activity

我有一个场景,我的主屏幕(ActivityA)启动登录屏幕(ActivityB)。此登录屏幕将有一个按钮,允许未注册的用户注册帐户,触发(ActivityC)。

在我的代码中,我正在使用ActivityA

public class ActivityA extends Activity {
  ...
  startActivityForResult(new Intent(this, ActivityB.class), 0);
  ...
}

和ActivityB

public class ActivityB extends Activity {
 ...
 startActivity(new Intent(this, ActivityC.class));
 ...
}

好吧它似乎有效,但是我担心是否有任何隐藏的问题可能会在以后再次困扰我?在ActivityB中,如果我启动ActivityC,则没有setResult()调用来触发ActivityA的onActivityResult()。这样的流是否存在问题,或者我应该使用startActivity而不是startActivityForResult?

1 个答案:

答案 0 :(得分:3)

ActivtyA的onActivityResult方法将在ActivityB完成时触发。当ActivityB在ActivityB上调用finish()时,ActivityB会在其生命周期中执行什么操作或生成多少新活动无关紧要(希望在调用setResult()之后它会传播回ActivityA。这是您的唯一差距沟通是因为ActivityC在完成时无法告诉ActivityB。如果你不需要它,你就没事了; A和B的沟通仍然没有改变。