我有一个场景,我的主屏幕(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?
答案 0 :(得分:3)
ActivtyA的onActivityResult
方法将在ActivityB完成时触发。当ActivityB在ActivityB上调用finish()
时,ActivityB会在其生命周期中执行什么操作或生成多少新活动无关紧要(希望在调用setResult()
之后它会传播回ActivityA。这是您的唯一差距沟通是因为ActivityC在完成时无法告诉ActivityB。如果你不需要它,你就没事了; A和B的沟通仍然没有改变。