我是android studio的初学者,现在已经有一段时间了。在我的操作栏中,后退按钮将关闭整个应用程序,而不是转到上一个活动!这是我的代码
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_brochures__view2);
if(getSupportActionBar()!=null)
{
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
这是Android清单
<activity
android:name=".Brochures_View2"
android:launchMode="singleTask"
android:parentActivityName=".Brochures_Menu"/>
因此,我进行了一些研究,发现它与Android启动模式有关,但是当我尝试所有可能的选择时,后退/向上按钮仍会关闭整个应用程序。我尝试过删除onbackpressed并放置finish(),但是没有用。
谢谢
答案 0 :(得分:0)
您可以做的是重写onBackPressed并在按下该按钮时触发所需的活动。它使您可以不依赖于活动堆栈来控制应用程序的流程。
答案 1 :(得分:0)
好吧,我终于明白了。问题是finish();是的,我在开始所有活动之前已经完成了(Intent)。因此,据我了解,finish()从堆栈中弹出活动,因此使堆栈为空。因此,在我的情况下,堆栈上没有任何东西,因为在我开始任何意图/活动之前,我调用了finish(),离开应用程序别无选择,只能退出。现在很有意义。