onbackpressed转到主屏幕而不是之前的活动

时间:2015-01-24 12:16:38

标签: android

我有一个导航抽屉应该关闭背压这完美有效但当导航抽屉关闭并有第二次返回按钮时按应用程序关闭而不是进入主屏幕

这是我正在尝试的代码

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub

        if(drawerLayout.isDrawerOpen(Gravity.LEFT)){
            drawerLayout.closeDrawer(Gravity.LEFT);
        }else{
            //super.onBackPressed();
             Intent mainActivity = new Intent(Intent.ACTION_MAIN);
             mainActivity.addCategory(Intent.CATEGORY_HOME);
             mainActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             startActivity(mainActivity);

        }

我们如何关闭导航抽屉然后直接进入主屏幕/主要活动

我不想使用

Intent i = new Intent(AccountActivity.this, HomeActivity.class);
                    startActivity(i);

2 个答案:

答案 0 :(得分:1)

从家中启动另一个活动时不要使用finish()方法。 //从主屏幕中删除finish方法。

答案 1 :(得分:1)

首先,请阅读并理解我的回答 here ,以清除MainActivity的背靠背。在你理解之前我的方法是行不通的。

因此,您无法直接关闭应用,除非您首先返回主屏幕并关闭主屏幕Activity(请参阅此question)。

<强> CurrentActivity

if(drawerLayout.isDrawerOpen(Gravity.LEFT)) {
    drawerLayout.closeDrawer(Gravity.LEFT);
}else{
// After you understood my answer above (I link it with "here"),
// you just need this call:
    startActivity(new Intent(CurrentActivity.this, HomeScreenActivity.class));
}

注意:finish()方法中调用onResume()可能会导致问题。

finish()内的onResume()方法中致电HomeScreenActivity

@Override
protected void onResume() {
    super.onResume();
    HomeScreenActivity.this.finish();
}