【问题标题】:Activity is closed after onActivityResult is called调用 onActivityResult 后 Activity 关闭
【发布时间】:2015-05-13 12:07:36
【问题描述】:

活动说明:

Activity_A ...读取标签时启动的nfc活动

Activity_B ... 捕获用户签名的活动

嗨,我的问题是这样的: 我有 Activity_A,在那个活动中我用 startActivityForResult() 方法调用 Activity_B。然后我在 Activity_B 中做一些工作并关闭它。在我的 Activity_A 中调用该方法 onActivityResult() 之后。我处理了返回的数据,一切都很好,但是 Activity_A 不再可见。

如果我用返回按钮关闭 Activity_B,那么 Activity_A 仍然可见。 (onActivityResult() 不会被调用)。

我希望我的 Activity_A 在我从 Activity_B 返回时保持活跃和可见。

我已经在运行 Kitkat(4.4.2 和 4.4.4)的 2 台设备上进行了测试。 我无法在模拟器上测试它,因为 Activity_A 是 NFC 活动。

onActivityResult 代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Log.d(TAG, "onActivityResult is called");
    switch(requestCode) {
        case SIGNATURE_ACTIVITY:
            if (resultCode == RESULT_OK) {
                Bundle bundle = data.getExtras();
                String signatureFile = data.getStringExtra("SIGNATURE_FILE");
                if(signatureFile !=null ) {
                    this.showToastMessage("Signature captured!");
                    presenter.loadSignatureImage(signatureFile);
                } else {
                    this.showToastMessage("Signature filename not returned!");
                }
            }
            break;
    }
}

【问题讨论】:

  • 你能展示你的代码吗?
  • 能否请您发布 onActivityResult() 代码?或者干脆尝试从 onActivityResult() 中删除 finish() 如果已写入此代码。
  • 我添加了onActivityResult方法代码

标签: android android-activity android-lifecycle


【解决方案1】:

确保您没有使用intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
在开始当前活动之前。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 2017-03-05
    • 2012-02-08
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    相关资源
    最近更新 更多