调用finish()后获取活动结果为OnPause

时间:2011-02-05 19:28:51

标签: android

我正在寻找Activity的setResult()的访问器版本。想象一下,如果在setResult()中使用了resultCode和Intent,getResult()将返回一个Bundle。

原因是默认情况下活动加载,resultCode设置为RESULT_CANCELED:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.3_r1/android/app/Activity.java#669,我希望能够从onPause方法查询resultCode。这可能会为按下的后退按钮保存一个监听器。

1 个答案:

答案 0 :(得分:2)

您在设置成员变量时是否可以将resultCode保存到成员变量,并在onPasuse中将其读回?

public class MyActivity extends Activity {
    private int result = RESULT_CANCELLED;
    ...
    // do some stuff
    result = RESULT_OK;
    setResult(result);
    ...
    @Override
    protected void onPause() {
        super.onPause();
        switch (result) {
        case RESULT_OK:
            // do stuff
            break;
        }
    }
}

您也可以使用与您使用的任何Intent类似的内容。

您必须记住,只要您onPause不在前台,就会调用Activity,而不是在您设置结果并调用finish()