我有一个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()
答案 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。