我有一个关于从不同活动中的一个活动调用方法的问题。我有一个使用startActivityForResult的活动,并在第二个活动完成后返回结果,但在第二个活动上调用finish()之前,我想在第一个活动中调用一个refresh()方法。
我最初的想法是将第一个活动作为意图中的额外活动传递给我,因此我可以参考活动的方法,但无法看到这是如何完成的。
答案 0 :(得分:2)
为什么在完成活动B之前在活动A上调用refresh()
?如果您使用startActivityForResult()
启动了活动B,那么您将在活动A中的onActivityResult()
中获得结果。然后,您可以在此时调用refresh()
。举个例子:
活动B有:
setResult(RESULT_OK);
finish();
活动A有:
private static final int ACTIVITY_B = 0;
...
Intent intent = new Intent(this, ActivityB.class);
startActivityForResult(intent,ACTIVITY_B );
...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
switch (requestCode){
case ACTIVITY_B:
switch (resultCode){
case RESULT_OK:
refresh();
break;
}
}
}
或者您可以使用其他结果代码来指示其他事件。