当我按回时如何关闭应用程序?

时间:2016-03-09 07:36:11

标签: android android-fragments back-button

我正在安装我的应用程序,然后使用主要活动保存数据并转到另一个片段活动。下一次我开始我的应用程序总是预览第二片段然后我按回去进入主要活动但是我没有&# 39;我想去主要活动。我想按回按钮关闭我的应用程序。我试试这个

@Override
public void onResume() {
    super.onResume();

    getView().setFocusableInTouchMode(true);
    getView().requestFocus();
    getView().setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
                // handle back button's click listener
                Toast.makeText(getActivity(), "Back press", Toast.LENGTH_SHORT).show();
                return true;
            }
            return false;
        }
    });

}

6 个答案:

答案 0 :(得分:2)

在您的主要活动中,在用于开始第二项活动的行startActivity()之后添加此行this.finish();

答案 1 :(得分:1)

在你的onBackPress方法中试试这样的东西

@Override
    public void onBackPressed() {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        //to clear all old opened activities 
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        finish();
    }

答案 2 :(得分:0)

- 关闭/退出应用的最简单方法:

@Override
    public void onBackPressed() {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
        finish();
    }

答案 3 :(得分:0)

试试这个:

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        finish();
       }

答案 4 :(得分:0)

我相信这个帖子可以帮到你:Android: Quit application when press back button

假设您的主要活动为B且片段活动为A.然后,您必须清除活动堆栈并在堆栈上仅保留A.使用此:

Intent launchNextActivity;
launchNextActivity = new Intent(B.class, A.class);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);                  
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(launchNextActivity);

答案 5 :(得分:0)

覆盖主要活动中的onBackPressed方法

@覆盖     public void onBackPressed(){         super.onBackPressed();         完();        }