三、点击返回按钮不退出app 那么如何解决,点击返回按钮不直接退出app呢?...设计思路 1.点击两次返回按钮才退出app 2.点击返回按钮回到桌面但是不退出app,使app在后台运行 第一种:点击两次按钮退出app 设计: ①重写onBackPressed方法 onBackPressed...() 捕获后退键按钮back的信息 ②currentTimeMills 返回毫秒级别的系统时间 ③放在oncreate方法下 private static final int TIME_EXIT=2000...; private long mBackPressed; @Override public void onBackPressed(){ //onBackPressed() 捕获后退键按钮...=System.currentTimeMillis(); } } 第二种:单击回到桌面,APP在后台运行 单击回到桌面,app仍在后台运行 @Override public boolean onKeyDown
话不多说,我们来看代码 1、实现活动的集合类 这里主要实现点击返回按钮退出程序的功能,也会是随时随地退出程序。...其实上面这些代码的主要作用就是让新活动入栈的之前清空活动栈,这样当新活动入栈后活动栈内只有一个活动,点击返回按钮当然就能直接退出程序。...接下来我们来实现点击两次退出APP 2、实现点击两次退出APP 网上实现的代码主要是两种方式: (1)、利用Handler (2)、利用系统秒数 这两个方法的核心其实都是利用时间差,如果在限定的时间内点击了两次返回键就退出程序...这里给出两种方法实现的代码: (1)、利用Handler 代码如下 //定义一个变量,来标识是否退出 private static int isExit=0; //实现按两次后退才退出...重写了父类的onKeyDown()方法,每点击一次返回按钮就会调用这个方法,给 isExit 的值增加1,调用 exit() 判断是否要退出程序。
(4)putExtra(键,数据)---getIntExtra(键,默认值)方法名是根据put的数据类型选择 (5)onBackPressed单击模拟器Back键的实现 ***注意:需要把...----参考教材p53下半部代码 ***onActivityResult方法中如果不加if(resultCode==RESULT_OK)这个判断,按Back按钮会出现异常 4、putExtra(键,...数据)---getIntExtra(键)方法名是根据put的数据类型选择,修改测试一下 5、单击模拟器Back键的实现----参考教材p54代码:无效果 ***注意:需要把super.onBackPressed...();注释掉 super.onBackPressed();是执行系统的默认动作,就是退出当前activity,所以当我们要重写这个函数时,不要加super.onBackPressed(),就可以不退出activity...参考链接:Android 重写onBackPressed()函数 失效问题 - 以现在的努力程度之低,谈狗屁的未来,屎的梦想!!!
记录单击、双击实现过程,进行简单的封装,便于复用,包括常用的软件双击退出。...双击实现:记录第一次点击时间,在设定时间内再次点击,则返回监听事件,否则不做处理;Application双击退出亦是同样的实现逻辑。...(); } } 单击及双击实现:使用Handler进行延时消息发送,通过计数获取点击次数,若设定时间内点击两次则返回双击事件;单次,则返回单击事件。...void onSingleClick(View v) { } @Override public void onDoubleClick(View v) { } }); 主要重写了...View的OnClickListener事件,也可以重写OnTouchListener进行处理;采用抽象类抽象方法,也可使用接口封装进行处理。
很多应用中都有一个在用户后退的时候显示“再按一次退出”的提醒,这个怎么实现呢?...finish(); } return true; } return super.onKeyDown(keyCode, event); } 第二种方式 重写...onBackPressed方法直接监听返回键 @Override public void onBackPressed() { long currentTime = System.currentTimeMillis...,但是这种方法缺只适用于Android 2.0以后....如果你需要同时重写这两个方法,可能要注意一些问题啦!
应用中经常会用到双击返回键在退出应用的效果,目的是为了防止用户误触返回键而导致退出应用。...通常的写法如下: 首先定义一个变量 /** * 再次返回键退出程序 */ private long lastBack = 0; 然后我们重写onBackPressed...(); } 首先我们获取当前的变量lastBack,然后给它赋值,然后检测是否大于两秒,如果大于则弹出提示“再按一次的返回退出程序”,当两次间隔小于两秒那么就会走super onBackPressed...但是有些时候不执行onBackPressed(),那怎么解决呢 我采用的是重写dispatchKeyEvent代码如下: @Override public boolean dispatchKeyEvent...} return false; } return super.dispatchKeyEvent(event); } 采用此方法
常用按钮点击 1、单击事件,主要用于Button和ImageButton控件,布局视图与TextView、ImageView控件用的也比较多。...监听器需要重写的点击方法 : onCheckedChanged 4、单选按钮点击事件,只能用于RadioGroup视图。...,一般是确认 setNegativeButton : 设置否定按钮的监听器,一般是取消 setNeutralButton : 设置中性按钮的监听器,这个很少用 监听器需要重写的点击方法 : onClick...常见的提示方式不外乎两种: 1、APP弹出一个确认对话框,让用户选择是否退出APP,点击“是”按钮则退出,点击“否”按钮则取消; 2、APP弹出Toast提示“再按一次返回键退出”,如果用户接着又按了一次返回键...,那么APP再退出; 两种方式的处理流程大同小异,都是重写返回键的onBackPressed方法,下面给出第二种方式的代码示例: public class MainActivity extends
,并且MainActivity处于活动栈栈顶(这绝对是当然的),然后单击按钮两次,我们在Android模拟器中可以看到MainActivity又被创建了两次,而此时的LogCat中的信息: !...然后我们再点击一下“启动SecondActivity”按钮,我们会发现LogCat的信息并没有什么变化,此时也只需要点击两次BACK键就能退出程序。..."); super.onDestroy(); } ``` 重写SecondActivity中的onDestroy方法: “` @Override public void onDestroy()...启动SecondActivity”按钮进入SecondActivity之后再次单击“启动SecondActivity”按钮,之后再单击“启动MainActivity”按钮: ?...结果显而易见,如我们所愿,单击“启动MainActivity”按钮之后,之前在MainActivity上面的两个SecondActivity被系统回收(调用onDestroy方法),自然MainActivity
本片博客将详细介绍: Android 活动中 onKeyDown() onKeyUp() onBackPressed() 三个方法的关系及使用 最后给出实现双击退回桌面的源码实例 ----...() 方法 ---- 我们接着看 onBackPressed() 方法 我们可以看到,在 onBackPressed() 方法中,又调用了 finishAfterTransition() 方法 很明显该方法的作用就是结束丹铅活动..., 如果是 Home 键的话,就调用 onBackPressed() 方法, 接着 onBackPressed() 方法又调用了 finishAfterTransition() 方法结束当前活动 ---...- onKeyUp() 方法 类似这里贴下官方文档,就不唠叨了: ---- 双击退回桌面但活动仅退到后台的实现 很明显,要实现这个功能,首先要重写这几个方法,这时我们先注意下文档,我们看到:无论是 onKeyDown...---- 重写 onKeyUp() 方法 首先判断 是否为 Home 键,如果是,执行自己代码,否则执行系统代码( 不加判断的话,你双击音量键也得退出 ) 代码如下: @Override public
如果需要,请使用“活动”图标并选择小显示格式来更改活动显示 使用后退”按钮退出网络图形。选择“保存”以保存该项目。然后将替换临时网络号。...单击“分配电源源”按钮以确认条目。通过选择“更改申请”来 保存已更改的采购申请。最后,通过单击“返回”来退出报告。...单击“继续”图标确认字段选择。分析这两个材料组件的数据,然后退出报告而不保存概述。为此,请 单击“后退”图标。 4.在计划版中变更组件 查看项目规划板中的组件概述。...按两次输入键,进入警告信 息“请检查输入参数”。 b) 将显示一个包含计划运行的详细数据的列表。这里还列出了对您的项 目的依赖性需求。使用“后退”按钮退出事务处理。...然后单击“传输”图标,将传递信息分配给该活动。单击保存图标,然后通过单击退出图标退出项目生成器。
DrawerLayout 提供 1、当界面弹出的时候,主要内容区会自动背景变黑,当点击内容区的时候,抽屉布局会消失 2、在屏幕边缘手势滑动 会拉出抽屉布局 注意:当按后退键的时候,如果抽屉布局正在显示...wrap_content" 50 android:layout_height="wrap_content" 51 android:text="按钮...widget.DrawerLayout> 55 然后看activity代码: 只要 mDrawerLayout.openDrawer(Gravity.LEFT); 便可以实现弹出抽屉界面 注意重写后退按钮响应事件...; } }); } @Override public void onBackPressed() { super.onBackPressed...: //这里设置clickable(true) 必须动态设置 静态设置没有效果 //解决问题 侧滑菜单出来的时候 点击菜单上的区域会有点击穿透问题 mDrawerLayout.setDrawerListener
Fragment中的返回 在Fragment中经常用到自定义标题栏,而返回按钮的点击事件一般设置为:getActivity().onBackPressed();,这样可以使得点击返回按钮和点击手机上的返回键的效果一致...即 启动Activity–>显示FragmentA–>显示FragmentB–>用户点击返回按钮或者手机上的返回键–>退出了Activity。...Fragment3.0和FragmentV4 Fragment3.0的getActivity().onBackPressed()默认调用了Activity的onBackPressed()方法,方法里面使用的...()默认调用了FragmentActivity的onBackPressed()方法,方法里面使用的getSupportFragmentManager()获取FragmentManager对象进行弹出栈内的...()方法的代码重写所在的Activity的onBackPressed()方法: FragmentV4配合继承了Activity的Activity中时: XXX_Activity extends Activity
前言 现在市面上很多应用都会有当用户按返回键的时候提示用户:再按一次将退出应用的提示,也就是双击双击返回键退出应用,接下来我们就用几种办法来实现这个功能 效果图 ?...实现 第一种办法 响应Activity的 onKeyUp事件,两次点击时间大于2秒钟就不响应,小于2秒钟就退出程序 代码: //记录用户首次点击返回键的时间 private long firstTime...true; } else { System.exit(0); } } return super.onKeyDown(keyCode, event); } 第三种办法 直接重写...onBackPressed()方法 代码: /** * 第三种方法 */ @Override public void onBackPressed() { long secondTime...*/ @Override public void onBackPressed() { if (!
返回数据给上一个活动 Activity中还有一个StartActivityForResult()方法也是用于启动活动的, 但这个方法期望在活动被销毁的时候能够返回一个结果给上一个活动。...由于使用的是startActivityForResult()方法启动的SecondActivity的, 在被销毁之后会回调上一个活动的onActivityResult()方法,因此需要重写这个方法:...由于在一个活动中有可能调用startActivityForResult()方法启动很多不同的活动, 每一个活动返回的数据都会回调onActivityResult()方法,因此需要先判断requestCode...如果在SecondActivity中不是通过按钮点击返回的,而是按下Back键, 可以在SecondActivity中重写onBackPressed()方法解决问题: @Override public...void onBackPressed(){ Intent intent = new Intent(); intent.putExtra("data_return","Hello Test0423Activity
自己布置一个back的按钮或图片 当然就要自己写回退实现的逻辑,例如back的id为R.id.back,在onClick方法中,switch case中调用finish方法,case R.id.back...简单来说,就是系统提供的标准组件,让我们方便的实现后退功能。 ...但有一点要注意的是,如果要在Java代码中操作ActionBar,例如setTitle,指定其文字,必须在onStart方法中进行,而不能是onCreate方法,因为在系统周期中,onStart方法时View...机器上的back按键 处理此按键的后退功能,只需要在onBackPressed方法中就可以。...1 @Override 2 public boolean onBackPressed() { 3 return true; 4 } 以上就是自己在解Bug中总结的三种方式
一.WebView浏览网页(加载线上URL) ---- WebView提供了很多方法执行浏览器操作,常用方法如下: void goBack():后退 void goForward():前进。...void goBackOrForward(int step):step为正表示前进,step为负表示后退。 void loadUrl(String url):加载指定URL对应的网页。...= null && mWebView.canGoBack()){ mWebView.goBack(); }else { super.onBackPressed...并重写了onBackPressed()方法,当WebView不为空且WebView可以回退时,返回上一个WebView界面,而不是直接回退到上一个Activity。...运行该实例,点击第一个按钮,效果图如下: ? 点击第二个按钮,效果图如下: ?
常见按钮点击 a、单击事件,主要用于Button和ImageButton控件,布局视图与TextView、ImageView控件用的也比较多。...相关类名与方法说明如下: 监听器类名 : DialogInterface.OnClickListener设置监听器的方法包含了如下三个按钮 : setPositiveButton : 设置肯定按钮的监听器...,一般是确认 setNegativeButton : 设置否定按钮的监听器,一般是取消 setNeutralButton : 设置中性按钮的监听器,这个很少用 监听器需要重写的点击方法 : onClick...退出常见的提示方式不外乎两种: 1、APP弹出一个确认对话框,让用户选择是否退出APP,点击“是”按钮则退出,点击“否”按钮则取消; 2、APP弹出Toast提示“再按一次返回键退出”,如果用户三秒之内接着又按了一次返回键...,那么APP再退出; private long mTickForShow; @Override public void onBackPressed() { if (SystemClock.uptimeMillis
5.单击确定,然后退出所有窗口。 Windows ? 7用户: 1.点击开始菜单,打开控制面板。 2.在网络和 Internet部分中,单击查看网络状态和任务。...3.在右侧的查看活动网络中,单击当前已连接的网络(如下图)。 4.在连接状态窗口下方,单击属性。 5.在连接属性窗口选择Internet 协议版本 4 (TCP/IPv4),单击属性。...7.单击确定,然后退出所有窗口。 Windows ? 8用户: 1.按Win(徽标键) X键,打开菜单,选择控制面板。 2.在网络和 Internet部分中,单击查看网络状态和任务。...3.在右侧的查看活动网络中,单击当前已连接的网络(如下图)。 4.在连接状态窗口下方,单击属性。 5.在连接属性窗口选择Internet 协议版本 4 (TCP/IPv4),单击属性。...7.单击确定,然后退出所有窗口。 在路由器中设置: 在路由器中使用OneDNS,所有通过此路由器连接网络的设备都会得到OneDNS的服务。
概述 OnBackPressedDispatcher 解决了什么问题: 在 Activity 里可以通过回调方法 onBackPressed() 处理,而 Fragment / View 却没有直接的回调方法...:责任链上的每个回调方法仅在前面的回调处于未启用状态(unEnabled)才能调用。...答:主线程,分发器的入口方法 Activity#onBackPressed() 执行在主线程,因此回调方法也是执行在主线程。...一般情况下,“调用 moveTaskToBack()” 表现最佳,两个论点: 1、两次点击返回键的目的是挽回用户,确认用户真的需要退出。...此时,你会发现上一节的方法不会等返回栈清空就直接走退出逻辑了。
intent-filter里面只有和标签,那么只有和中的内容同时能够匹配上Intent中指定的action和category时,这个活动才能响应这个...requestCode int:如果>=0,则当活动退出时,此代码将在onActivityResult()中返回。...如果您的活动将noHistory设置为true,则永远不会调用此方法。...由于在一个活动中有可能调用startActivityForResult()方法去启动很多不同的活动,每一个活动返回的数据都会回调到onActivityResult()这个方法中,因此我们首先要做的就是通过...,就回去执行onBackPressed()方法中的代码,我们重写这个方法再添加逻辑就行了。
领取专属 10元无门槛券
手把手带您无忧上云