iapp做的软件怎么实现双击android 返回键不退出退出当前界面

Android实现点击两次返回键和长按返回键退出应用实践
虽然国庆节过了,玩的心还没回来。
今天给大家分享一篇关于退出应用的知识点。大家都知道在大部分App中,退出应用程序都是以点击两次返回键,并且控制连续点击的时间差,来提示用户,提高App的应用体验。
而长按返回键退出应用的场景目前国内App相对较少。本篇博客的内容我将带大家分别实现以上两种方式。
1.点击两次返回键退出应用
点击两次返回键退出应用的核心在于控制用户点击的时间差,通过判断时间差来决定执行提示或者退出。既然是控制返回键,必然我们需要在onKeyDown的方法中来做处理。同时我们需要判断时间差,就需要记录此次点击的时间。
长按返回键的处理方式也有两种:
(1)重写onBackPressed方法
相信大家都知道,当我们点击返回键的时候,系统其实是会去调用onBackPressed方法。并且系统允许我们自己定制该方法的处理方式。所以我们在onBackPressed方法中可以去做时间差的判断,来看核心代码:
public void onBackPressed() {
//1.点击的时间差如果大于2000,则提示用户点击两次退出
if(System.currentTimeMillis() - mExitTime & 2000) {
//2.保存当前时间
= System.currentTimeMillis();
showShortToast(R.string.str_exit_prompt);
//4.点击的时间差小于2000,调用父类onBackPressed方法执行退出。
super.onBackPressed();
(2)重写onKeyDown
public boolean onKeyDown(int keyCode, KeyEvent event) {
//1.点击返回键条件成立
if(keyCode == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_DOWN
&& event.getRepeatCount() == 0) {
//2.点击的时间差如果大于2000,则提示用户点击两次退出
if(System.currentTimeMillis() - mExitTime & 2000) {
//3.保存当前时间
= System.currentTimeMillis();
showShortToast(R.string.str_exit_prompt);
//5.点击的时间差小于2000,退出。
System.exit(0);
}2.长按返回键退出应用
长按返回键的处理方式也有两种:
(1)在dispatchKeyEvent中处理
public boolean dispatchKeyEvent(KeyEvent event) {
//点击返回键并且是长按,则退出
if(event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.isLongPress()) {
System.exit(0);
(2)在onKeyDown中处理
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK) {
if(event.getRepeatCount() == 0) {
showShortToast("长按返回键退出");
System.exit(0);
getRepeatCount()方法的作用是获取用户点击返回键的次数, 0代表点击了一次,次数&=1时就代表长按,值越大说明按的时间越长。
两种场景的退出方式,大家可以根据自己的实际情况选择。
有问题的小伙伴留言给我~
没有更多推荐了,
不良信息举报
举报内容:
Android实现点击两次返回键和长按返回键退出应用实践
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口
时间: 16:25:09
&&&& 阅读:444
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&最近在使用微信、支付宝、百度钱包实现网页支付,对支付成功将自动关闭页面,对于支付失败,将显示错误信息。当在错误页面的时候,点击返回
或者Android物理按键上一步的时候,将关闭页面。
在微信、支付宝、百度钱包中,他们对页面关闭进行了封装,传统的window.close()是无效的,必须要使用它们的js代码才能关闭。下面是三种移动app
的关闭方式:
WeixinJSBridge.call('closeWindow');//微信
AlipayJSBridge.call('closeWebview');
BLightApp.closeWindow();//百度钱包
通过浏览器的头判断是那种浏览器:
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)==&micromessenger&) {
alert(&微信客户端&);
} else if(ua.indexOf(&alipay&)!=-1){
alert(&支付宝客户端&);
}else if(ua.indexOf(&baidu&)!=-1){
alert(&百度客户端&);
对返回、上一页、后退进行监听,并对history中放入当前页地址:
$(function(){
pushHistory();
window.addEventListener(&popstate&, function(e) {
}, false);
function pushHistory() {
var state = {
title: &title&,
window.history.pushState(state, &title&, &#&);
整个实现完整代码:
$(function(){
pushHistory();
window.addEventListener(&popstate&, function(e) {
pushHistory();
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)==&micromessenger&) {
WeixinJSBridge.call('closeWindow');
} else if(ua.indexOf(&alipay&)!=-1){
AlipayJSBridge.call('closeWebview');
}else if(ua.indexOf(&baidu&)!=-1){
BLightApp.closeWindow();
window.close();
}, false);
function pushHistory() {
var state = {
title: &title&,
window.history.pushState(state, &title&, &#&);
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://blog.csdn.net/mr_smile2014/article/details/
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!android 程序点击button退出程序_百度知道
android 程序点击button退出程序
我写了一个android小程序在第一个Activity里面有两个button,其中一个是退出,我想点击退出按钮时就退出这个android程序,但是不会写推出的代码,求教高手给我写一个玩真的退出程序,
我有更好的答案
exit_bt.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
MainActivity.finish();
});这个mainactivity就是你指的activity。
采纳率:60%
1.MainActivity.java //添加自身Activity到集合,每个activity都要添加
PublicWay.activityList.add(this);
Button exit=(Button)findViewById(R.id.exit);
//退出程序事件
exit.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//遍历Activity集合,关闭所有集合内的Activityfor(int i=0;i&PublicWay.activityList.size();i++){if (null != PublicWay.activityList.get(i)) {PublicWay.activityList.get(i).finish();}}}
});2.PublicWay.javapublic class PublicWay {//存放所有的Activitypublic static List&Activity& activityList = new ArrayList&Activity&();}此方法可以关闭所有Activity,即实现退出程序
这得看你是退出当前的Activity还是退出当前应用!当前Activity则直接this.finish()就行!如果是退出应用你就得关闭全部的activity.如果是退出应用,你可以看下下面这个网站:
您好,只要在View类或者SurfaceView类中的构造函数中写上这句setFocusableInTouchMode(true);然后在退出时就用普通的System.exit(0);就可以了.这个方法只能退出当前的Activity.你可以查看后台,程序是否有完全关闭.如果你有很多个Activity,那么最好的方法就是用广播的方法来关闭所有的Activity.代码有点长,留Q我发你
finish()掉当前的Activity就好了。。。。。。。。。。
监听里面写个finish();就可以
其他3条回答
为您推荐:
其他类似问题
android的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
转载 & & 作者:Mr_Smile2014
这篇文章主要介绍了在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法,传统的window.close()是无效的,必须要使用它们的js代码才能关闭。下面小编给大家分享下代码,一起看看吧
最近在使用微信、支付宝、百度钱包实现网页支付,对支付成功将自动关闭页面,对于支付失败,将显示错误信息。当在错误页面的时候,点击返回或者Android物理按键上一步的时候,将关闭页面。
在微信、支付宝、百度钱包中,他们对页面关闭进行了封装,传统的window.close()是无效的,必须要使用它们的js代码才能关闭。
下面是三种移动app的关闭方式:
WeixinJSBridge.call('closeWindow');//微信
AlipayJSBridge.call('closeWebview'); //支付宝
BLightApp.closeWindow();//百度钱包
通过浏览器的头判断是那种浏览器:
var ua = navigator.userAgent.toLowerCase();
f(ua.match(/MicroMessenger/i)=="micromessenger") {
alert("微信客户端");
} else if(ua.indexOf("alipay")!=-1){
alert("支付宝客户端");
}else if(ua.indexOf("baidu")!=-1){
alert("百度客户端");
对返回、上一页、后退进行监听,并对history中放入当前页地址:
$(function(){
pushHistory();
window.addEventListener("popstate", function(e) {
}, false);
function pushHistory() {
var state = {
title: "title",
window.history.pushState(state, "title", "#");
整个实现完整代码:
$(function(){
pushHistory();
window.addEventListener("popstate", function(e) {
pushHistory();
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger") {
WeixinJSBridge.call('closeWindow');
} else if(ua.indexOf("alipay")!=-1){
AlipayJSBridge.call('closeWebview');
}else if(ua.indexOf("baidu")!=-1){
BLightApp.closeWindow();
window.close();
}, false);
function pushHistory() {
var state = {
title: "title",
window.history.pushState(state, "title", "#");
以上所述是小编给大家介绍的在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 e4a返回键退出 的文章

 

随机推荐