R4j*_*R4j 12 android android-fragments android-activity
我的应用程序结构如下:
SplashActivity -> MainActivity -> (switching between many fragments)
Run Code Online (Sandbox Code Playgroud)
我的期望:当片段返回堆栈计数为零时,从主活动完成应用程序.这是我的尝试:
在SplashAcitivty中
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getBooleanExtra("exit", false)) {
finish();
}
}
Run Code Online (Sandbox Code Playgroud)
在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();
}
}
Run Code Online (Sandbox Code Playgroud)
所以,请告诉我如何在空的时候确定后筹码?因为我使用SlideMenu库,所以我的所有片段都会多次切换,并且在切换时会将它们添加到后台堆栈中.看起来像这样:
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, fragment)
.addToBackStack(null)
.commit();
Run Code Online (Sandbox Code Playgroud)
小智 34
这是我的代码.这对我来说可以:
@Override
public void onBackPressed() {
int backStackEntryCount = getSupportFragmentManager().getBackStackEntryCount();
if (backStackEntryCount == 0) {
goBack(); // write your code to switch between fragments.
} else {
super.onBackPressed();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8072 次 |
| 最近记录: |