我的应用程序结构如下:
SplashActivity -> MainActivity -> (switching between many fragments)
我的期望:当片段返回堆栈计数为零时,从主要活动完成应用程序。这是我的尝试:
在 Splash 活动中
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getBooleanExtra("exit", false)) {
finish();
}
}
在 MainActivity:
@Override
public void onBackPressed() {
// I need to implement this method
if( backstackCount() == 0){
Intent intent = new Intent(this, SplashActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra(SplashActivity.EXIT_KEY, true);
startActivity(intent);
}else{
super.onBackPressed();
}
}
那么,请告诉我当它为空时如何确定后栈?因为我使用SlideMenu
库,所以我的所有片段都切换了很多次,并且在切换时它们被添加到后堆栈中。看起来像这样:
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, fragment)
.addToBackStack(null)
.commit();