按下后退按钮,我希望我的应用程序进入停止状态,而不是被破坏状态.
在Android 文档中,它指出:
...当按下BACK时,并非所有活动都具有被销毁的行为.当用户开始在音乐应用程序中播放音乐然后按BACK时,应用程序将覆盖正常的后退行为,防止播放器活动被破坏,并继续播放音乐,即使其活动不再可见
如何在我自己的应用程序中复制此功能?
我认为必须有三种可能性......
捕获后退按钮(如下所示),然后调用主页按钮调用的任何方法.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
Log.d(this.getClass().getName(), "back button pressed");
}
return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)按下后退按钮,然后按下主页按钮.
捕获后退按钮,然后启动主屏幕的活动,有效地将我的应用程序的活动置于停止状态.
编辑: 我知道服务,并在与此问题相关的应用程序中使用一个.这个问题具体是关于按下后退按钮将Activity置于停止状态而不是销毁状态.
我有一个活动,其中包含几个用户可编辑的项目(EditText字段,RatingBar等).如果按下后退/主页按钮并且已经进行了尚未保存的更改,我想提示用户.通过阅读android文档后,似乎这段代码应该放在onPause方法中.我已经尝试在onPause中放置一个AlertDialog,但是对话框会显示出来,然后立即关闭,因为没有任何东西阻止暂停完成.
这是我到目前为止所提出的:
@Override
protected void onPause() {
super.onPause();
AlertDialog ad = new AlertDialog.Builder(this).setMessage(
R.string.rating_exit_message).setTitle(
R.string.rating_exit_title).setCancelable(false)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
// User selects OK, save changes to db
}
}).setNeutralButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
// User selects Cancel, discard all changes
}
}).show();
}
Run Code Online (Sandbox Code Playgroud)
我是在正确的轨道还是有另一种方式来完成我在这里要做的事情?任何帮助都会很棒!
我正在开发一个Android应用程序.我希望当我在我的应用程序中按下后退按钮时,它应该给我一个提示(某种警告对话框),如果我真的想退出.我不知道在哪里放置此警报对话框以及在Yes按钮中写入的内容,用户想要退出应用程序.请帮我.