【问题标题】:Getting activity result in OnPause after call to finish()调用完成()后在 OnPause 中获取活动结果
【发布时间】:2011-02-06 04:08:49
【问题描述】:

我正在寻找 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。这可能会为按下的后退按钮保存一个侦听器。

【问题讨论】:

    标签: android


    【解决方案1】:

    你不能在设置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 做一些类似的事情。

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

    【讨论】:

    • 我希望不必使用另一个成员变量来跟踪它。进一步查看 Android 源代码后,似乎这可能是唯一的方法。
    猜你喜欢
    • 2019-07-25
    • 2011-07-31
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    相关资源
    最近更新 更多