从ondestroy获得意图结果

时间:2014-03-21 02:55:46

标签: android android-intent android-activity

我可以使用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无法获得我的结果。

我也尝试了onStoponPause,但没有一个正在运作。

请帮助我,谢谢你的帮助

3 个答案:

答案 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()和类似的方法中这样做。