android - 带有 startActivityForResult 的 TaskStackBuilder

标签 android taskstackbuilder

在我的例子中,我有一个使用 startActivityForResult 调用 Activity B 的 Activity A。

Activity B 是一种将数据返回给 Activity A 的表单,因此数据可以存储在我的数据库中。

此外,我的应用程序启动一个通知,在单击时启动 Activity B,当我尝试从 Activity B 返回到 Activity A 时出现问题,因为从未调用方法“onActivityResult”。我在创建 TaskStackBuilder 时无法模拟 startActivityForResult():

Intent resultIntent = new Intent(this, activityB.class);
// This ensures that navigating backward from the Activity leads out of your application to the Home screen.
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
// Adds the back stack for the Intent (but not the Intent itself)
stackBuilder.addParentStack(activityB.class);
// Adds the Intent that starts the Activity to the top of the stack
stackBuilder.addNextIntent(resultIntent);

NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(this)
                .setContentIntent(resultPendingIntent);

最后,我在 manifest.xml 中添加了 Activity B 的父 Activity :

<activity
    android:name=".activityB"
    android:parentActivityName=".activityA"
    android:windowSoftInputMode="stateHidden">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".activityA"/>
</activity>

最佳答案

据我对 Android 框架的了解,OnActivityResult 方法仅在使用 startActivityForResult() 方法启动 Activity 且相应 Activity 已调用 setResult 时调用。

Android 官方文档 Android TaskStackBuilder :

Utility class for constructing synthetic back stacks for cross-task navigation

所以我认为您不能告诉框架使用该回调返回 Activity 。

相反,您可以做的是在 Intent 中放置一些额外的内容,然后当您返回返回堆栈(到 Activity A)时,检查初始方法(onCreate 或 onResume)中的额外内容或仅存在的参数如果来自最后一个 Activity ( Activity B)

关于android - 带有 startActivityForResult 的 TaskStackBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39075087/

相关文章:

android - 无法为 Activity 创建返回堆栈

android - 为 Firebase 通知后启动的 Activity 构建任务堆栈

android - launchMode singleTask 中的 Activity 在通过 TaskStackBuilder 启动时被销毁

android - TaskStackBuilder#startActivities() NullPointerException

android - 解释和理解 smali。有人可以帮我翻译吗?

java - Android:如何添加API异常?

android - 为什么 Firebase pendingAuthResult 返回 null?

java - 通过 Maven 或 Eclipse 使用和检查 Android 支持注释(无需 Android Studio)

android - 可访问性 - 大文本资源目录限定符?