onActivityResult不会触发Logger

时间:2016-04-05 23:29:27

标签: android android-intent

我的活动有点问题...... 不知怎的,我的onActivityResult方法永远不会被调用,即使我认为我设置了所有内容,并且在我的清单中没有“nohistory”或类似的内容。

活动A:

  @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Log.d("ASDSA","ASDSA");
}

活动B:

Intent intent = new Intent(AddStockActivity.this, MainActivity.class);
                intent.putExtra("stock", stock);
                setResult(Activity.RESULT_OK, intent);
                finish();

日志永远不会被执行......我的实现有什么问题?

编辑: 这就是我如何称呼活动:

Intent intent = new Intent(MainActivity.this, AddActivity.class);
                startActivityForResult(intent, Activity.RESULT_OK);

仍然没有对日志记录采取任何措施。 顺便说一下,我按下按钮即可解雇两个意图。

4 个答案:

答案 0 :(得分:1)

在解雇startActivityForResult

时,您需要从活动A而不是startActivity致电Intent

答案 1 :(得分:1)

为此结果启动活动B

Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivityForResult(intent, requestCode);

其中requestCode是一个整数,用于区分不同的请求。

答案 2 :(得分:0)

你需要从ActivityB这样调用ActivityA -

Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivityForResult(intent, <your_request_code_here>);

您不需要在ActivityB

中撰写此内容
 Intent intent = new Intent(AddBienenstockActivity.this, MainActivity.class);
 intent.putExtra("stock", stock);

完成工作后

            setResult(Activity.RESULT_OK, intent);
            finish();

来自ActivityB

答案 3 :(得分:0)

Okey伙计我明白了。我需要将代码更改为此代码:

Intent intent = new Intent(MainActivity.this, AddActivity.class);
startActivityForResult(intent, 1);

任何人都可以解释原因吗?