一些Android应用退出的时候,要按两次back按键,一直很好奇,总算是发现怎么实现的了。
实现代码:
package com.example.com.cb.test; import java.util.Timer; import java.util.TimerTask; import android.os.Bundle; import android.app.Activity; import android.view.KeyEvent; import android.view.Menu; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // 是否退出程序 private static Boolean isExit = false; // 定时触发器 private static Timer tExit = null; // 鼠标按键释放 @Override public boolean onKeyUp(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if (keyCode == KeyEvent.KEYCODE_BACK) { if (isExit == false) { isExit = true; if (tExit != null) { tExit.cancel(); } // 重新实例一个定时器 tExit = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { // TODO Auto-generated method stub isExit = false; } }; Toast.makeText(this, "在按一次退出程序", Toast.LENGTH_SHORT).show(); // 延时两秒触发task任务 tExit.schedule(task, 2000); } else { finish(); System.exit(0); } return true; } return super.onKeyUp(keyCode, event); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
实现具体:
看代码很明显就是对Timer这个类的使用.
Timer类说明:
cancel()方法:
schedule:
执行流程:
当你按下back按键后,Toast一下,然后会在当前时间+delay后启动task任务,当启动task任务后,isExit依然是false,是不能退出的,不启动task任务,isExit是true,
在按下一back按键后,由于isExit是true,就执行退出操作.
相关推荐
在Android开发中,有时我们需要实现一个功能,使得用户在点击某个按钮后,应用程序能够完全退出,包括清除所有活动栈中的Activity以及停止后台服务。这里我们将深入探讨如何利用`Application`类来实现这一功能,以及...
4. **利用SharedPreferences或数据库记录状态**:另一种方法是通过保存和检查共享偏好(SharedPreferences)或数据库中的退出标记,当检测到标记时,执行退出操作。但这需要额外的逻辑处理。 5. **自定义Back按键...
在Android中,我们可以使用`GestureDetector`类来处理用户的触摸事件,通过重写其回调方法,如`onDown()`, `onFling()`, `onScroll()`等,来检测和响应用户的滑动手势。为了实现滑动退出功能,我们通常关注`onFling...
在这种情况下,可以通过广播或自定义事件来通知所有Activity退出,或者在主Activity中设置一个全局标志,当所有Activity都检测到这个标志时退出。 4. **后台服务管理**:如果应用程序运行了后台服务,退出时需要...
本话题将深入探讨如何在Android Studio中创建和管理Service,使其在应用退出后仍能继续运行,并实现开机自启动,以保持应用的后台存活。 一、Service基础 1. 创建Service: 在Android Studio中,可以通过右键项目 -...
在Unity3D游戏开发中,有时我们需要为Android平台实现一个退出应用的功能,这通常是通过监听设备的返回键事件来完成的。这篇博客将探讨如何在Unity3D中编写一个简单的脚本来实现这一功能。 首先,我们需要理解Unity...
要实现双击退出,我们需要在某个活动(通常是主活动)中记录用户点击返回键的事件,并在短时间内连续两次检测到该事件时执行退出操作。这通常通过重写`onBackPressed()`方法来实现。`onBackPressed()`在用户点击返回...
在Android应用开发中,用户可能需要在完成一系列操作后彻底退出程序,特别是在处理完敏感信息或者需要节省系统资源的情况下。通常,一个Android应用由多个Activity组成,每个Activity代表一个独立的屏幕或功能。当...
总的来说,"Android-图片浏览器支持缩放下拉缩小退出"项目涵盖了Android手势检测、图片加载与缓存、动画效果、UI交互等多个方面,对于开发者来说,理解和实现这个项目不仅能提升Android开发技能,还能加深对用户交互...
"android程序意外退出自动重启"这个主题涉及到如何在程序出现意外错误导致崩溃时,实现程序的自动恢复和持续运行。以下是一些关键知识点的详细说明: 1. **异常处理**: - 在Android中,每个应用都有一个独立的...
本文将深入探讨如何在Android应用程序中实现类似微信的网络判断和退出弹窗功能。 首先,我们要理解“启动退出网络判断”这一概念。在安卓应用启动时,系统会执行一系列初始化操作,其中包括检查网络连接状态。如果...
在Android平台上,视频终端检测是一项重要的任务,它涉及到多媒体资源的优化、性能评估以及用户体验的提升。本文档主要探讨了Android视频终端的检测流程、逻辑架构以及相关组件和序列图,旨在提供一个简化的设计框架...
综上所述,"Android 点击两次返回键退出程序"是一个增强应用安全性和用户体验的设计,开发者可以通过监听返回键事件并在短时间内检测连续点击来实现这一功能。虽然实现方式简单,但需要注意与整体应用交互的一致性和...
在Android开发中,创建出色的用户体验往往需要对细节进行精心设计,比如实现侧滑退出功能、沉浸式状态栏以及自定义的UI控件。本篇将深入探讨这些关键知识点,并提供相应的实现策略。 首先,让我们来看“侧滑退出”...
### Android 两次按返回键退出程序实现 在Android开发中,有时我们需要实现这样一个功能:当用户连续两次按下返回键时,应用才退出。这种设计的主要目的是为了提高用户体验,避免用户因误触返回键而导致应用程序...
以及Android Profiler,用于性能分析和内存泄漏检测。 总之,退出整个Android应用可以通过多种方式实现,但应尽量遵循Android的设计原则,利用系统提供的生命周期管理和任务栈机制。这样既能确保应用的稳定性和用户...
本文将详细探讨如何在Android系统中实现版本检测、下载以及安装的过程,确保用户能够及时获取到最新的应用版本。 首先,我们要实现版本检测。这通常涉及到服务器端与客户端的交互。服务器上会存储当前最新版本的...
Android实例源码-应用启动应用退出&网络判断类安卓源代码(12例) 3G和wifi的切换监听 android 在线更新示例代码 android程序的自动更新 和 基于GPS定位的轨迹存储 app更新,实现service下载 ViewPager+Fragment侧滑...
在Android开发中,实现双击退出功能是一种常见的用户体验优化手段,尤其在移动应用设计中,这一功能能够提供更直观、更安全的退出机制,避免用户因误操作而直接关闭应用程序。下面,我们将深入探讨如何在Android应用...
在Android开发中,有时为了提供更好的用户体验或者遵循某些设计规范,开发者需要在用户连续快速点击两次返回键时退出应用程序。这种功能的实现通常涉及到事件监听、时间管理以及应用的生命周期控制。以下是三种实现...