如何知道android中的活动历史

时间:2015-09-23 14:15:13

标签: android android-activity

我有几项活动

MainActivitySecondActivity

MainActivity是第一个要运行的活动,然后我点击一个按钮转到SecondActivity

Intent i = new Intent(this, SecondActivity.class);
this.startActivity(i);
SecondActivity中的

我只需按后退按钮即可返回MainActivity

当我从SecondActivity回来时,我想在OnResume函数中执行代码

   @Override
    public void onResume(){
        super.onResume();
        //code to be executed


    }

那么如何知道我是从SecondActivity

回来的

1 个答案:

答案 0 :(得分:3)

您可以将requestCode与startActivityForResult一起使用。 requestCode是一个整数,可以让您知道以后返回哪个活动。你可以创建一个像这样的整数来引用多个地方

public static final int REQUEST_CODE_SECOND_ACTIVITY = 1;

然后开始您的活动

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, REQUEST_CODE_SECOND_ACTIVITY);

完成第二项活动后,您可以发回所需的任何数据,或为某些操作设置自定义resultCode

Intent intent = new Intent();
intent.putExtra("myData", myVariable);
setResult(RESULT_OK, intent);
finish();

要在SecondActivity完成后执行某些操作,您需要在第一项活动中覆盖onActivityResult

注意:如果您在完成第二项活动之前未致电setResult,则onActivityResult将返回resultCode RESULT_CANCELLED

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE_SECOND_ACTIVITY) {
        if(resultCode == RESULT_OK){
            //do something here
        }
    }
}