Android启动并返回多个活动?

Android启动并返回多个活动?,android,android-activity,Android,Android Activity,我的应用程序有一个名为DetailActivity的活动。在DetailActivity中,我有一个按钮返回,另一个按钮用不同的参数启动另一个DetailActivity。按下“后退”按钮时,我调用: ((DetailActivity) ctx).finish(); 当启动另一个DetailActivity时,我的应用程序具有选项卡,因此如下所示: TabActivityGroupAbs parentActivity = (TabActivityGroupAbs) ((Activity) ct

我的应用程序有一个名为DetailActivity的活动。在DetailActivity中,我有一个按钮返回,另一个按钮用不同的参数启动另一个DetailActivity。按下“后退”按钮时,我调用:

((DetailActivity) ctx).finish();
当启动另一个DetailActivity时,我的应用程序具有选项卡,因此如下所示:

TabActivityGroupAbs parentActivity = (TabActivityGroupAbs) ((Activity) ctx)
                                .getParent();
Intent detailIntent = new Intent(parentActivity, DetailActivity.class);
parentActivity.startChildActivity("DetailFromGame", detailIntent);
现在从DetailActivity A开始,我开始了DetailActivity B,从B开始了C,然后我按下了后退键。从C正确地转到B。然后我又往后压。应用程序崩溃了。似乎只能追溯到上一个活动。我尝试调试,当它运行到DetailActivity ctx.finish;,我看到一个NullPointerException。但我不知道什么指针是空的

有人知道怎么解决这个问题吗

编辑:我尝试捕获DetailActivity ctx.finish;行并抛出java.lang.RuntimeException:无法销毁活动{myapp.DetailActivity}:java.lang.NullPointerException

我猜是因为我有两个DetailActivity实例,所以当我调用DetailActivity ctx.finish;,不知何故,ctx或任何对DetailActivity的引用都变为空。我对安卓系统很陌生,所以我不确定


解决:我的错。在onDestroy中,我访问一些静态字段,然后将它们设置为null。所以下次调用finish时,这些静态字段将抛出NullPointerException

您可以发布您的logcat错误吗?您是否覆盖了详细信息中的back按钮activity@Konstantin:我尝试捕获详细活动ctx.finish;行并抛出java.lang.RuntimeException:无法销毁活动{myapp.DetailActivity}:java.lang。NullPointerException@Sreeram:不,我没有。我创建了我的按钮,单击一次我调用DetailActivity ctx.finish;。我会尝试这样做:this.finish,而不是杀死强制转换的上下文DetailActivity ctx.finish。尽管目前只是猜测而已。