来自intent的Android调用方法

时间:2014-05-21 13:39:10

标签: android android-intent methods

我有这段代码:

public class MainActivity extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        intent = new Intent(this, ConnectDialog.class);
        update();
    }

    private void update(){
        if(a)
            startActivity(intent);
        else{
            //code
        }
    }

}

而且:

public class ConnectDialog extends Activity{

    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_connect_dialog);
        btn = (Button) findViewById(R.id.button);
        btn.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                finish();
            }
        });

    }
}

问题是:当我点击Intent的按钮时,是否可以再次执行主活动的方法更新?非常感谢你

3 个答案:

答案 0 :(得分:0)

只需将update的电话转入onResume()的{​​{1}}即可。这样,它将在首次启动时调用,并在稍后再次显示MainActivity时调用:

MainActivity

答案 1 :(得分:0)

我会使用onActivityResult方法。

update方法更改为

int YOUR_RESULT = 100;

private void update(){
    if(a)
        startActivityForResult(intent, YOUR_RESULT);
    else{
        //code
    }
}

然后在同一个活动中,使用此方法:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == YOUR_RESULT) {
        update();
    }
}

如果您使用此方法,则只有在从该活动返回时才会调用update()方法。

答案 2 :(得分:0)

如果您检查Android生命周期,您将得到更新未执行的答案。 如何在点击时调用更新方法..

 private void update(){
        if(a)
            startActivityForResult(intent, 0);
        else{
            //code
        }
    }

并使用onActivityResult再次调用update方法

@Override
    protected void onActivityResult(int arg0, int arg1, Intent arg2) {

        super.onActivityResult(arg0, arg1, arg2);
        update();

    }