【问题标题】:onActivityResult calling before the started activity finish在开始的活动完成之前调用 onActivityResult
【发布时间】:2016-02-12 14:47:08
【问题描述】:

我有 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 的一个活动的 finish() 方法

public void finishWithResult() {
    setResult(RESULT_OK, new Intent());
    finish();
}

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

【问题讨论】:

    标签: android cordova android-activity


    【解决方案1】:
    Intent in = caller.getPackageManager().getLaunchIntentForPackage("com.your.package.here");
    

    默认情况下会创建一个intent,并添加Intent.FLAG_ACTIVITY_NEW_TASK,所以调用: in.setFlags(0);
    这将清除该标志,然后您可以继续:

    startActivityForResult(in, action);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-01
      • 2020-11-10
      • 1970-01-01
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-30
      相关资源
      最近更新 更多