Android 如何实施";再次按“上一步”退出;特征?
某些应用程序(例如Dolphin HD浏览器)实现以下功能: 按“后退”键可跳回后堆栈。当显示初始视图/活动/片段并按下“后退”按钮时,会出现一个Android 如何实施";再次按“上一步”退出;特征?,android,Android,某些应用程序(例如Dolphin HD浏览器)实现以下功能: 按“后退”键可跳回后堆栈。当显示初始视图/活动/片段并按下“后退”按钮时,会出现一个Toast,上面写着“再次按下后退退出”或类似的内容 如何实现此功能?捕获后退按钮事件,如下所示: public void onBackPressed() { //Add your logic here return; } 现在创建一个标志,使应用程序在第一次启动时不会关闭。 最后,通过调用finish(),结束您的活动关于您的活动
Toast
,上面写着“再次按下后退退出”或类似的内容
如何实现此功能?捕获后退按钮事件,如下所示:
public void onBackPressed()
{
//Add your logic here
return;
}
现在创建一个标志,使应用程序在第一次启动时不会关闭。
最后,通过调用finish(),结束您的活动代码>关于您的活动
要快速显示祝酒词,请使用以下命令:
Toast.makeText(this, "Press Back again to quit", Toast.LENGHT_SHORT).show();
假设您是从活动类启动此代码。如果没有,请尝试获取活动的上下文,而不是使用API级别1的this
覆盖活动的上下文
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
....
关于API 5级及以上的内容,请参见Pieter888所述。在课程顶部:
int count = 0;
在您的班级中:
public void onBackPressed()
{
if(count == 1)
{
count=0;
finish();
}
else
{
Toast.makeText(getApplicationContext(), "Press Back again to quit.", Toast.LENGTH_SHORT).show();
count++;
}
return;
}
看看开发人员站点,它定义得很清楚。@JoxTraex:谢谢,我知道开发人员站点,我也知道如何影响后台堆栈。我只是觉得这是一些内置功能。@ThorstenDittmar你的问题不是这个意思(关于内置功能)。你问“如何实施……”海比森:我知道。你的观点是什么?@ThorstenDittmar我只是想如果你编辑这个问题,它会更清楚。如果没有,请忽略我的评论。谢谢。我知道如何显示Toast
,我只是想知道该功能是否是内置的(例如通过清单中的标志打开)。没问题!它不认为谷歌会在Android中构建这样的东西,即使它是一些应用程序的有用功能,它打破了关于应用程序/活动应该如何工作的默认规则。这是真的,即使我认为它特别有用,例如对于Web浏览器,按下后退按钮可以追溯到网站的历史。我想你的意思是把count++在if(count==1)
语句的else
-子句内的code>中。如果count
的默认值为0
,则不需要将count++放在elseb中。当用户按下后退按钮时,它将首先执行count++
因此值现在是1
,然后它将检查count
的值是否等于1
,这总是正确的,活动将调用finish()
。或者我完全遗漏了什么?对不起,我们必须在条件后面加上count+。我太饿了,所以我制造了这个问题。。对不起,亲爱的,好吧,如果我(或一个孩子)不小心按了一次(它设置为真),然后在30秒的间隔后,我(或一个孩子再次)按了后退按钮,该怎么办。OMG中间退出应用程序,但这里的问题(或主题)应该是“连续单击后退按钮两次后退出应用程序”。在最长2~3秒内,否则重置标志=默认值。