Android 实现点击两次BACK键退出应用
2016-09-21 10:58
344 查看
转载自:http://xfenglin.com/a/12007044545.html
在做安卓应用是我们经常要判断用户对返回键的操作,一般为了防止误操作都是在用户连续按下两次返回键的时候提示用户是否退出应用程序。
第一种实现的基本原理就是,当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法。
在exit方法中,会首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在2000毫秒(2秒)后发出一个消息,在Handler中将此值还原成false。如果在发送消息间隔的2秒内,再次按了BACK键,则再次执行exit方法,此时isExit的值已为true,则会执行退出的方法。
第二种方法
通过记录用户点击的时间,比较时间差来判断是否需要退出。
在做安卓应用是我们经常要判断用户对返回键的操作,一般为了防止误操作都是在用户连续按下两次返回键的时候提示用户是否退出应用程序。
第一种实现的基本原理就是,当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法。
在exit方法中,会首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在2000毫秒(2秒)后发出一个消息,在Handler中将此值还原成false。如果在发送消息间隔的2秒内,再次按了BACK键,则再次执行exit方法,此时isExit的值已为true,则会执行退出的方法。
public class MainActivity extends AppCompatActivity { //定义一个变量来标识是否退出 private static boolean isExit = false; private Button jump; private static Handler mHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); isExit = true; } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); jump = (Button) findViewById(R.id.jump); jump.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this,SecondActivity.class); startActivity(intent); } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK){ exit(); return true; } return super.onKeyDown(keyCode, event); } private void exit() { if (!isExit){ isExit = true; Toast.makeText(MainActivity.this,"再按一次退出程序",Toast.LENGTH_SHORT).show(); mHandler.sendEmptyMessageDelayed(0,1000); }else { Log.e("bai","成功退出"); this.finish(); System.exit(0); } } }
第二种方法
通过记录用户点击的时间,比较时间差来判断是否需要退出。
public class MainActivity extends AppCompatActivity { private long clickTime = 0; //记录第一次点击的时间 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK){ exit(); return true; } return super.onKeyDown(keyCode, event); } private void exit() { if (System.currentTimeMillis() - clickTime >2000){ Toast.makeText(MainActivity.this,"再按一次退出程序",Toast.LENGTH_SHORT).show(); clickTime = System.currentTimeMillis(); }else { this.finish(); System.exit(0); } } }
相关文章推荐
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android Back键点击两次退出应用详解及实现方法总结
- android实现点击两次back键退出应用
- 【android随笔】工具类整理--两次点击BACK键,退出应用的实现
- Android实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android实现点击两次Back退出程序
- Android应用实现点击back键时,使应用返回桌面,而不是退出应用,类似微信,qq等聊天软件
- Android 实现点击两次返回键退出应用
- android 实现按两次back键提示退出应用界面
- android中如何实现连续点击返回键退出整个应用 android两次返回退出应用
- [置顶] Android实现点击两次返回键和长按返回键退出应用实践
- 在android中如何实现在应用首页按两次返回键(back)退出应用
- Android实现点击两次back退出APP
- 【转载】Android实现点击两次返回键退出应用
- 在应用的MainActivity中实现连续点击两次Back键后才退出应用