如何将动态解析的活动名称添加到后台堆栈(不使用PARENT_ACTIVITY)?

时间:2014-08-18 21:23:34

标签: android android-intent android-activity android-widget

目标是

1)从AppWidgetProvider或任何其他后台任务启动活动A(很简单)。

2)从活动A单击“返回”按钮后转到活动B.

问题是我无法在AndroidManifest.xml中设置PARENT_ACTIVITY,因为活动B类名在运行时确定。所以在一个案例中,我需要去活动B,在其他情况下,它是另一个活动。好像我没有PARENT_ACTIVITY就可以使用TaskStackBuilder。

我可以在活动A的finish()方法中处理这个问题,但它应该是一个更简单的方法来将活动B添加到"后栈#34;当我运行startActivity(intent)时。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

使用startActivities(Intent[])来合成您自己的Activity实例的Backstack。例如:

Intent activityB = new Intent(context, ActivityB.class);
Intent activityA = new Intent(context, ActivityA.class);

// They should be ordered from bottom of stack to top of stack
Intent[] activities = new Intent[] { activityB, activityA };
context.startActivities(activities);

答案 1 :(得分:0)

试试这个:

@Override
    public void onBackPressed() {
        Intent intent = new Intent(ActivityA.this , ActivityB.class);
        startActivity(intent);    
    }

希望它有所帮助! :)