用EventBus的方式双击退出应用

首先一般来说我们做项目都会自己先定义一个Activity的子类,然后所有的Activity都来继承这个子类,作为所有Activity的父类出现

在栈顶双击返回选择退出的时候直接用eventBus来通知这个Activity

这个是栈顶的类假设他是MainActivity

/**双击退出**/
@Override
public void onBackPressed() {
    if (doubleBackToExitPressedOnce) {
          super.onBackPressed();
          EventBus.getDefault().post(new ExitRongMoMo());
          return;
      }
  this.doubleBackToExitPressedOnce = true;//原来是false的话点击一次back键将其改为true,再按一次执行上面if为true则退出
  ToastUtil.showShort(MainActivity.this, "双击退出");
  new Handler().postDelayed(new Runnable() {

@Override
public void run(){ //2秒后改为false
    doubleBackToExitPressedOnce=false;
              }
        }, 2000);
}

这个是EventBus的事件通知

public static class ExitRongMoMo{}

在MainActivity的父类里接收从MainActivity发来的退出应用的信息

/**退出应用**/
@Subscribe
public void OnEvent (MainActivity.ExitRongMoMo event){
    finish();
}

你可能感兴趣的:(用EventBus的方式双击退出应用)