简体   繁体   English

Android 如何在回按时关闭正在运行的应用程序?

[英]Android how to close a running app on back press?

How to exit from an app on back press of main activity?如何在回按主要活动时退出应用程序? I am using this code, but its finish main activity and show other activities from back stack.我正在使用此代码,但它完成主要活动并显示来自后堆栈的其他活动。

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

I tried this and its work for me really well,as I am working on app, where once session get expired, user is able to see only few views and remain hidden.我尝试了这个并且它对我来说非常好,因为我正在开发应用程序,一旦会话过期,用户只能看到很少的视图并保持隐藏状态。

    @Override
    public void onBackPressed() {
        moveTaskToBack(true);
    }

You can use您可以使用

android:noHistory="true" in manifest under activity tag like this android:noHistory="true"在这样的活动标签下的清单中

    <activity 
        android:name=".MainActivity"
        android:noHistory="true">
    </activity>

Try this尝试这个

@override
public void onBackPressed(){
Intent a = new Intent(Intent.ACTION_MAIN);
a.addCategory(Intent.CATEGORY_HOME);
a.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(a);
}

You can also try this,你也可以试试这个

@Override
    public void onBackPressed() {
       int pid = android.os.Process.myPid();
       android.os.Process.killProcess(pid);    
}

You can try this one :你可以试试这个:

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

        new AlertDialog.Builder(Activityname.this)
        .setTitle("Title")
        .setMessage("Do you really want to exit?")
        .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) { 
                ActivityCompat.finishAffinity(Activityname.this);
                finish();   
            }
        })
        .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) { 
                dialog.dismiss();
            }
        })
        .setIcon(android.R.drawable.ic_dialog_alert)
        .show();

    }

Hope it will solve your problem希望它能解决你的问题

Already asked . 已经问过了 most popular answer:最受欢迎的答案:

getActivity().finish();
System.exit(0);

Hi try adding this code inside onBackPressed:嗨,尝试在 onBackPressed 中添加此代码:

getActivity().finish();
System.exit(0);
@Override
public void onBackPressed() {

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Are you sure you want to Exit ?")
            .setCancelable(false)
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    moveTaskToBack(true);
                }
            })
            .setNegativeButton("No", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialogInterface.cancel();
                }
            });
    AlertDialog alertDialog = builder.create();
    alertDialog.show();
}

Try this,尝试这个,

Intent intent = new Intent(UserProfile.this, Login.class)
                            .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();

try public void onBackPressed() { finish(); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); finish(); }尝试public void onBackPressed() { finish(); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); finish(); } public void onBackPressed() { finish(); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); finish(); }

use finish();使用完成(); after migrating from one activity to another从一项活动迁移到另一项活动后

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM