【问题标题】:Android Concatenating onActivityResult() not triggeredAndroid连接onActivityResult()未触发
【发布时间】:2014-12-15 11:15:04
【问题描述】:

我有三个活动 A、B 和 C。从活动 A 我可以调用活动 B,从 B 我可以调用 C,我也可以直接从活动 A 调用活动 C。

问题是,当通过 setResultonbackpressed 方法将结果从 C 直接返回到 A 时,一切正常。当我从活动 C 将结果返回给 B,并在其 onActivityResult 中再次调用 setResultonbackpressed 以将相同的结果传递给活动 A 时,问题就出现了。

Activity A 再次出现,但在这种情况下,它的onActivityResult 永远不会被触发。

这是一些代码。

在活动 C 中:

if (selection) {
    setResult(RESULT_OK, data);
} else {
    setResult(RESULT_CANCELED, data);
}
selection = false;
super.onBackPressed();

在活动B中获取C的结果并尝试将其传递回活动A

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (resultCode) {
        case RESULT_OK:
            setResult(RESULT_OK, data);
            onBackPressed();
            break;
        case RESULT_CANCELED:
            if (list_search != null && !list_search.getAdapter().isEmpty()) {
                list_search.setSelection(data.getIntExtra("position", 0));
            }
            break;
    }
}

这里是onActivityResult。如果它来自 B 或来自 C,我会得到结果,但它仅在直接来自 C 时触发。当通过 B 时,A 出现,但未触发 onActivityResult 所以我无法检索其中的数据案例。

public void OnActivityResult(int requestCode, int resultCode, Intent intent) {
    .... 
    switch (resultCode) {
        case RESULT_CANCELED:
            sincronizaCursorArticulos(intent.getStringExtra("cd_articulo"));
            break;

        case RESULT_OK:
            sincronizaCursorArticulos(intent.getStringExtra("cd_articulo"));
            fragment_order_entering.setEtArticulo(intent.getStringExtra("cd_articulo"));
            fragment_order_entering.loadArticulo(false);
            break;
    }
}

非常感谢。

【问题讨论】:

    标签: android onactivityresult


    【解决方案1】:

    如果在 androidmanifest.xml 文件中使用 StartActivityForResult() 启动的相应活动中添加了任何 android:launchMode="singleTask|SingleInstance" 属性,则在许多情况下,OnActivityResult 似乎不起作用。

    参考:onActivityResult With launchMode="singleTask"?

    【讨论】:

      【解决方案2】:

      对不起,我忘了说这三个activity都有singleTop launchMode。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-24
        • 2017-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多