Android - 在onBackPressed()之后执行一个函数;

时间:2016-10-06 13:25:52

标签: android

我有一个Activity,其中包含一个执行以下代码的工具栏项:

case android.R.id.home:
                onBackPressed();
                return true;

onBackPressed();将用户返回到我的MainActivity。

我的问题:如何在使用onBackPressed();方法访问MainActivity活动后执行该功能?这甚至可能吗?

1 个答案:

答案 0 :(得分:1)

在您的MainActivity中,您必须使用 startActivityForResult 启动新活动 像这样:

final Intent intent = new Intent(this, NewActivity.class);
startActivityForResult(intent, yourRequestCode);

yourRequestCode 是一个可用于从 NewActivity

获取结果的int

NewActivity 中,您可以覆盖 onBackPressed()方法:

@Override
public void onBackPressed() {
  /* no call super() */
  setResult(RESULT_OK);
  finish();
}

因此,在 MainActivity 上,您可以使用 onActivityResult 获得此结果并运行您的方法:

@Override
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == yourRequestCode && resultCode == Activity.RESULT_OK) {
        // here you can call your method !
    }

}