从不同的活动中调用方法

时间:2011-01-06 12:22:41

标签: android methods android-activity

我有一个关于从不同活动中的一个活动调用方法的问题。我有一个使用startActivityForResult的活动,并在第二个活动完成后返回结果,但在第二个活动上调用finish()之前,我想在第一个活动中调用一个refresh()方法。

我最初的想法是将第一个活动作为意图中的额外活动传递给我,因此我可以参考活动的方法,但无法看到这是如何完成的。

1 个答案:

答案 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;
        }
    }
}

或者您可以使用其他结果代码来指示其他事件。