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