短时间内连续点击2次back退出程序


    在程序中,实现随时随地退出程序 或者 快速点击两次返回退出程序
     
    新建一个ActivityCollector , 将所有的Activity加入List集合;加入添加Activity、移除Activity 与 结束所有Activity的方法;

    如需要在Activity中退出程序,直接在onDestory方法中,加入   ActivityCollector. removeActivity ( this )

    点击两次back退出程序:
     重写onKeyDown方法,在方法中 调用   ActivityCollector. finishingAll()方法即可


    代码如下:

    public static List<Activity> activities = new ArrayList<>() ;

    public static void addActivity (Activity activity){
        activities .add(activity) ;
    }

    public static void removeActivity (Activity activity){
    activities .remove(activity) ;
    }


    public static void finishAll (){
    for (Activity activity: activities ){
            if (!activity.isFinishing()){
            activity.finish() ;
            }
        }
    }


    代码如下:
     @Override
     protected void onDestroy () {
     super .onDestroy() ;
     ActivityCollector. removeActivity ( this ) ;
     }




另一种方式比较常见:


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(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
            exitTime = System.currentTimeMillis();
        } else {
            finish();
            System.exit(0);
        }
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
直接放在你要连续两次返回退出程序的 Activity即可。


    
    
    

猜你喜欢

转载自blog.csdn.net/xyl826/article/details/78654710