我有一个Activity,其中包含一个执行以下代码的工具栏项:
case android.R.id.home:
onBackPressed();
return true;
onBackPressed();
将用户返回到我的MainActivity。
我的问题:如何在使用onBackPressed();
方法访问MainActivity活动后执行该功能?这甚至可能吗?
答案 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 !
}
}