怎么回到android中的主要活动?

时间:2015-10-21 00:27:12

标签: java android android-activity activity-finish onbackpressed

我有一个void fun(const SceneNode& node); int main() { SceneNode n(...); Bone b; n.setBone(&b); fun(n); assert(*n.bone() == b); // is this a safe assumption? } " A",它有一个启动活动的按钮" B"和活动" B"有另一个按钮启动活动" C"。在活动B和C中,两者都有const Bone*方法,该方法显示MainActivity询问用户是否想要返回onBackPressed()。如果他们按是,程序应该显示MainActiviy。

问题是:在活动B中,我没有问题,只需调用AlertDialog方法,然后显示MainActivity,但问题出在活动C中,如果我调用{{1}方法,程序返回活动B.如何从活动C ??

返回finish()

3 个答案:

答案 0 :(得分:4)

试试你的onBackPressed:

Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

这会清除活动堆栈并打开您的主要活动。无论您是哪种活动,您都将返回主活动,并从堆栈中删除所有其他活动。

答案 1 :(得分:2)

在清单文件中使用以下活动B和C:

<activity android:name=".ActivityB"
            android:parentActivityName=".MainActivity"/>
<activity android:name=".ActivityC"
            android:parentActivityName=".MainActivity"/>

答案 2 :(得分:0)

您可以尝试使用ActivityCompat.finishAffinity并在您的活动C中启动MainActivity。