最近没事,今天就在看别人做的时候发现了点击两次退出这个东西,虽然在很多app中很常见,但是本菜鸟真的是一次也没尝试过,于是就决定试一下
好了首先,在这里说一下思路,肯定就是对手机的返回键进行监听,于是网查看了相关方法,监听返回键有两种,第一种是OnBackPressed方法,此方法调用之后方法里会有super(),这里要注意一下,如果要使用这种方法,当super执行的时候,finish()方法也就自动被执行了,activity也会随之关闭,还有一种方法就是onKeyDown方法,这里本菜鸟使用的就是这个方法,好了废话不多说上代码:
public class MainActivity extends AppCompatActivity { private boolean isExit = false;//这里我们先用一个变量来区分是否退出 Handler handler = new Handler(); @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); ...此处省略掉部分代码 } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) {//keyCode变量代表按下的是哪个键 exit(); return false;//如果按下的是返回键则在执行exit之后返回false } return super.onKeyDown(keyCode, event); } private void exit() { if (!isExit) {//判断是否是退出,默认为false;当按下一次之后将exit更改为true isExit = true; Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); handler.sendEmptyMessageDelayed(0, 2000);//用handler延迟信息至两秒 } else { finish();如果再次点击则直接退出activity System.exit(0); } } }