我可以使用onBackpressed
来获取意图的结果:
returnIntent.putExtra("isBack", true);
setResult(RESULT_OK,returnIntent);
finish();
这是我的onActivityResult
:
if (requestCode == 1)
{
if(resultCode == RESULT_OK){
boolean isBack = data.getBooleanExtra("isBack", false);
if(isBack == true)
searchEditText.setText("");
}
}
但是,现在我需要在setResult
中执行onBackpressed
而不是,所以我在考虑onDestroy
。
我尝试将setResult
移至onDestroy
,但onActivityResult
无法获得我的结果。
我也尝试了onStop
和onPause
,但没有一个正在运作。
请帮助我,谢谢你的帮助
答案 0 :(得分:3)
在finish()中覆盖
@Override
public void finish() {
Intent data = new Intent();
data.putExtra("isBack", true);
setResult(RESULT_OK, data);
super.finish();
}
答案 1 :(得分:1)
你想做什么?
您可以在操作完成后立即致电setResult()
,无需等待活动完成/销毁。
答案 2 :(得分:1)
在退出活动之前放置setResult()不是强制性的。在活动中完成所需操作后,您可以将其放在任何位置。在您的活动退出后,它将被正确调用。
通常,当从另一个活动调用一个活动时(或者当孩子完成时,父活动就会出现),一个活动的破坏过程和另一个活动的构建过程并行发生。它不像首先完全破坏活动,然后创建另一个活动。因此,该过程并行和异步发生。所以你不应该在onStop(),onDestory()和类似的方法中这样做。