Android 从活动返回后运行代码

Android 从活动返回后运行代码,android,android-activity,Android,Android Activity,单击一个按钮,我创建了一个新的意图并开始了一项活动。在活动返回finish()后,我想刷新一些屏幕元素。这就是我正在做的 private void onButtonClicked() { Intent myIntent = new Intent(this, myActivity.class); this.startActivity(myIntent); refreshButtons(); } 我的问题是在加载新意图时调用refreshBu

单击一个按钮,我创建了一个新的意图并开始了一项活动。在活动返回finish()后,我想刷新一些屏幕元素。这就是我正在做的

private void onButtonClicked() {
        Intent myIntent = new Intent(this, myActivity.class);
        this.startActivity(myIntent);
        refreshButtons();
    }

我的问题是在加载新意图时调用refreshButtons(),而不是在它从活动返回时调用。如何让refreshButtons()在我从开始的活动返回时运行

调用Intent时使用
startActivityForResult
,完成后将调用Intent-onActivityResult方法

private void onButtonClicked() {
    Intent myIntent = new Intent(this, myActivity.class);
    this.startActivityForResult(myIntent);

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    refreshButtons();   
}
试试这个

private void onButtonClicked() {        
Intent i = new Intent(this, myActivity.class);
startActivityForResult(i, 1);
        refreshButtons();
    }
在我的活动中

Intent returnIntent = new Intent();
setResult(RESULT_CANCELED, returnIntent);
finish();
现在,在第一个Activity类中,为onActivityResult()方法编写以下代码


别忘了先调用
super.onActivityResult
,然后在
onActivityResult
上面添加
@Override
,这看起来是最“干净”的方法。对我来说很好。但您还需要在以下位置添加请求代码:
startActivityForResult(intent,1)
super.onActivityResult(请求代码、结果代码、数据)
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {
        if(resultCode == RESULT_OK){
            refreshButtons();
        }
        if (resultCode == RESULT_CANCELED) {
            //Write your code if there's no result
        }
    }
}//onActivityResult