我有几项活动
MainActivity
和SecondActivity
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
?
答案 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
}
}
}