Android:再按一次退出程序

感觉这种效果比较友好

//两秒内按返回键两次退出程序
    private long exitTime = 0; 

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){
    if((System.currentTimeMillis()-exitTime) > 2000){
    Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
    exitTime = System.currentTimeMillis();
    } else {
    finish();
    System.exit(0);
    }
    return true;
    }
    return super.onKeyDown(keyCode, event);
    } 

相关文章:

Android:实现退出确认对话框

Android:再按一次退出程序

时间: 2024-10-09 23:47:26

Android:再按一次退出程序的相关文章

Android“再按一次退出程序”的具体实现

Android应用中许多退出程序的方式都是在你点击了返回按钮的时候,它弹出一个信息"再按一次退出",这个和时候我们只需要在按一次返回按钮,程序就退出了,有的 时候时间间隔是3秒或者其他的时间间隔,今天我就简单说一下实现原理. 其实实现还是比较简单的,我们需要在Activity中覆盖一个方法:public void onBackPressed():这个方法在返回键被点击的时候调用,覆盖这个方法之后我们重写它的实现: <span style="white-space:pre

Android开发之”再按一次退出程序“的实现

现在移动客户端退出程序对话框退出越来越不流行了,都开始使用连续按两次来退出,即著名的“再按一次退出程序”模式.现在就看看怎么实现的吧. @SuppressLint("HandlerLeak") Handler handler = new Handler(){ public void handleMessage(Message msg){ switch (msg.what) { } } }; boolean willExit = false; @Override public void

Android中点击物理返回按键(再按一次退出程序)

private long exitTime = 0; @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ if((System.currentTimeMillis()-exitTime) > 2000){ Toast.makeText(getA

再按一次退出程序

在android程序应用中常常会遇到点击返回键时提示再按一次退出程序. 要实现这个功能须要完毕两点: 一.可以彻底退出程序 ·之前看到有人用 finish();,事实上这样做并不能真的退出程序,这样仅仅是结束当前的Activity,一个程序中是能够有多个Activity的,在android能够彻底关闭进程的方法有好几种. 第一种: // 获取当前进程的id int pid = android.os.Process.myPid(); android.os.Process.killProcess(p

Android 监听返回键退出程序的两种实现

1.Android 双击返回键退出程序 思路:用户按下返回键时设定一个定时器来监控是否2秒内实现了退出,如果用户没有接着按返回键,则清除第一次按返回键的效果,使程序还原到第一次按下返回键之前的状态.定时器是每次用户按下返回键才去创建. 代码如下: /** * 菜单.返回键响应 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyC

【Android】System.exit(0) 退出程序

许多 Android 应用程序都是连续点击两下返回键时退出程序,代码如下: private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ if((System.currentTimeMillis()-ex

Android 再多图片也不会出现OOM

照片墙这种功能现在应该算是挺常见了,在很多应用中你都可以经常看到照片墙的身影.它的设计思路其实也非常简单,用一个GridView控件当作“墙”,然后随着GridView的滚动将一张张照片贴在“墙”上,这些照片可以是手机本地中存储的,也可以是从网上下载的.制作类似于这种的功能的应用,有一个非常重要的问题需要考虑,就是图片资源何时应该释放.因为随着GridView的滚动,加载的图片可能会越来越多,如果没有一种合理的机制对图片进行释放,那么当图片达到一定上限时,程序就必然会崩溃. 今天我们照片墙应用的

Android再按一次退出

private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ if((System.currentTimeMillis()-exitTime) > 2000){ Toast.makeText(get

Android 再谈handler

今天在做http网络事件的响应网络接收处理一般不能放在主线程中使用,目前也只会使用AsyncTask进行处理!之前虽然写过handler处理的一些文章但是发现全不会了!无奈~ 关于handler某位兄弟已经整理的很透彻了!现在引用下原话如下: Handler监听者框架:子线程是事件源,主线程是监听者.Handler作为子线程的监听器出现:主线程中生成Handler的子类,并重写handleMessage(Message msg) 方法,用来对子线程响应.子线程调用Hanlder的sendMess