操作栏上的“后退”按钮关闭整个应用程序,而不是返回到上一个活动

时间:2018-10-24 14:40:48

标签: android android-layout

我是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(),但是没有用。

谢谢

2 个答案:

答案 0 :(得分:0)

您可以做的是重写onBackPressed并在按下该按钮时触发所需的活动。它使您可以不依赖于活动堆栈来控制应用程序的流程。

答案 1 :(得分:0)

好吧,我终于明白了。问题是finish();是的,我在开始所有活动之前已经完成了(Intent)。因此,据我了解,finish()从堆栈中弹出活动,因此使堆栈为空。因此,在我的情况下,堆栈上没有任何东西,因为在我开始任何意图/活动之前,我调用了finish(),离开应用程序别无选择,只能退出。现在很有意义。