Java 返回键关闭任务中注册的所有活动

Java 返回键关闭任务中注册的所有活动,java,android,android-activity,task,Java,Android,Android Activity,Task,我的应用程序使用不同的活动来执行我希望它执行的操作。我正在寻找的行为是完全关闭应用程序,当按下back键时,任务中的每个活动都会被关闭 这可能吗?如果是,我该怎么办 提前感谢您花时间来帮助我。如果您希望在每个活动中都有这种行为,那么当每个活动开始另一个活动时(通过调用startActivity()),让它调用finish()。这将从后堆栈中删除它。这样,您的应用程序在任何时候都只有一个活动,当用户按下后退键时,活动将完成,您的应用程序将退出。此代码可能会帮助您: public boolean o

我的应用程序使用不同的活动来执行我希望它执行的操作。我正在寻找的行为是完全关闭应用程序,当按下back键时,任务中的每个活动都会被关闭

这可能吗?如果是,我该怎么办


提前感谢您花时间来帮助我。

如果您希望在每个活动中都有这种行为,那么当每个活动开始另一个活动时(通过调用
startActivity()
),让它调用
finish()
。这将从后堆栈中删除它。这样,您的应用程序在任何时候都只有一个活动,当用户按下后退键时,活动将完成,您的应用程序将退出。

此代码可能会帮助您:

public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub

    if(keyCode==KeyEvent.KEYCODE_BACK){
    new AlertDialog.Builder(yourcurrentactivityname.this).setTitle(
    "Attention").setMessage(
    "Want to exit ?")
    .setPositiveButton("YES",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,
                        int which) {
                   android.os.Process.killProcess(android.os.Process.myPid())
                }
            }).setNegativeButton("NO",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,
                        int which) {

                }
            }).show();
    return true;
    }else{
        return false;
    }

    //return super.onKeyDown(keyCode, event);

}

这只会结束当前的活动。这会起作用,但这似乎是一种暴力的方式。在终止进程之前,我至少要为当前活动插入一个调用
onPause()
。如果当前活动有一个打开的文件要写入,一个活动的数据库连接,或者任何类似的通常会在
onPause()
中清除的内容,那么调用
killProcess()
可能会导致数据损坏。这就是为什么如果使用这种方法,我建议先调用
onPause()
,然后再调用
killProcess()
。@TedHopp谢谢,我从来没有想过。谢谢,伙计