gpt4 book ai didi

java - 未调用跳过 Activity onActivityResult

转载 作者:行者123 更新时间:2023-12-01 11:31:22 25 4
gpt4 key购买 nike

我看到有人已经问过类似的问题( Skip going back to direct parent activity when pressed back )但不一样,所以这是我的情况。

有 3 个 Activity ,即 A 、 B 、 C ,调用顺序如下:A -> B -> C。在 C 中,当某个操作发生时,我必须返回到 A。

B 和 C 使用以下代码启动:

Intent target = new Intent(parent, B.class); //or C.class
startActivityForResult(target, 1);

在 C 中,我将关闭 Activity 并返回 B:

Intent intent = new Intent();
intent.putExtra("EXTRA", neededObject);
setResult(1, intent);
finish();

在 B 中我实现了 onActivityResult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
setResult(1, data);
finish();
}

不,我期望 A#onActivityResult 将被调用(我需要 A#onActivityResult 方法中的额外 Intent 数据)。但事实并非如此:-(

这是我的 AndroidManifest:

<activity android:name=".activities.C"
android:parentActivityName=".activities.B">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activities.Other"/>
</activity>

为什么这个方法没有被调用?我应该用其他方式实现它吗?

如果有人能帮助我,那就太好了。

最佳答案

我认为你的 B Activity 的 onActivityResult 应该如下所示

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 1) {
Intent intent = new Intent();
intent.putExtra("MESSAGE", message);
setResult(1, intent);
finish();
}
}

关于java - 未调用跳过 Activity onActivityResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30357395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com