onActivityResult在开始活动完成之前调用

时间:2016-02-12 14:47:08

标签: android cordova android-activity

我有App1(cordova应用程序)和App2的调用活动。这是一个App1代码

 mContext.startActivityForResult(intent, MainActivity.REQUEST_CODE_COMMUNICATION_APP);

在App1

中实现了以下onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == this.REQUEST_CODE_COMMUNICATION_APP) {
        if (resultCode == RESULT_OK) { ....

现在这里是App2

的actvity的finish()方法
public void finishWithResult() {
    setResult(RESULT_OK, new Intent());
    finish();
}

现在问题是当来自App1的startActivityForResult启动活动时,立即onActivityResult方法在App1中触发。但是,当我的App2活动调用finishWithResult()时应该调用它。有人能告诉我我在哪里弄错了吗?

1 个答案:

答案 0 :(得分:1)

Intent in = caller.getPackageManager().getLaunchIntentForPackage("com.your.package.here");

默认情况下会添加intent Intent.FLAG_ACTIVITY_NEW_TASK,所以请致电: in.setFlags(0);
哪个会清除那个标志,然后你可以继续:

startActivityForResult(in, action);