以上两个功能主要是参考了一下博客的:
http://blog.csdn.net/chenshijun0101/article/details/7682210
http://blog.csdn.net/winlinking/article/details/6596455
方法一:
按两次返回键退出程序:
public class Exit {
private boolean isExit = false;
private Runnable task = new Runnable() {
@Override
public void run() {
isExit = false;
}
};
public void doExitInOneSecond() {
isExit = true;
HandlerThread thread = new HandlerThread("doTask");
thread.start();
new Handler(thread.getLooper()).postDelayed(task, 1000);
}
public boolean isExit() {
return isExit;
}
public void setExit(boolean isExit) {
this.isExit = isExit;
}
}
Activity:
public class Back2FinishAppActivity extends Activity {
Exit exit = new Exit();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
pressAgainExit();
return true;
}
return super.onKeyDown(keyCode, event);
}
private void pressAgainExit() {
if (exit.isExit()) {
finish();
} else {
Toast.makeText(getApplicationContext(), "再按一次退出程序",
Toast.LENGTH_SHORT).show();
exit.doExitInOneSecond();
}
}
}
长按返回键退出程序:
public boolean dispatchKeyEvent(KeyEvent event)
{
int keyCode=event.getKeyCode();
switch(keyCode)
{
case KeyEvent.KEYCODE_BACK: {
if(event.isLongPress())
{
this.stopService(intent);
System.exit(0);
return true;
}else
{
return false;
}
}
}
return super.dispatchKeyEvent(event);
}
方法二:
-
privatelongexitTime=0;
-
-
@Override
-
publicbooleanonKeyDown(intkeyCode,KeyEventevent){
-
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);
-
}
-
returntrue;
-
}
-
returnsuper.onKeyDown(keyCode,event);
-
}
欢迎转载:http://blog.csdn.net/johnny901114/article/details/7823048
分享到:
相关推荐
Android 点击两次返回键退出程序
Android 实现按两次返回键退出程序(两种方法) 第一种方法: // 是否退出程序 private static Boolean isExit = false; // 定时触发器 private static Timer tExit = null; 第二种方法: public boolean ...
Android中实现再按一次返回键退出应用程序,详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/64234676
Android 返回键退出代码,第一次提示用户再按一次返回键退出,两秒钟内再按一次则退出程序,否则认为用户取消了退出操作!下下来就可以用,绝对好用哦~~~!!
android两次按返回键退出程序实现,一段简短的代码
安卓中很实用的一个功能,按两次返回键退出软件的简单实现,简单的demo,,按两次返回键退出软件的简单实现,简单的demo,
android中实现按两次返回键退出Activity,不再是返回一次就退出应用,第一次点击提示“再按一次退出应用”
我们可以在很多应用中都能看到按两次返回键退出 , 其实这个功能实现很容易, 下面就是实现的代码 , 把它放到你的程序中你的程序就能按两次返回键退出啦 , 这个功能是为了避免误点而把程序退出了 ,给你的程序也...
android再按一次返回键退出应用的源代码
Android按两次返回键退出应用核心代码
Android实现点击两次返回键退出 带注释
安卓开发文档黑马程序员之android_点击返回键退出程序的方法
安卓Android源码——返回键退出程序的两种方式.zip
安卓Android源码——返回键退出程序的两种方式.rar
个人觉得“再按一次返回键退出程序”是best practice,实现也很简单,直接上代码: 代码如下: private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == ...
Android应用源码之返回键退出程序的两种方式.zip
首先是实现连续点击返回键时,我们要重写Activity的onKeyDown方法,以捕捉到按键的点击事件,然后我们应该实现连续点击返回键的效果,在第一次点击的时候出现“再次点击返回键退出”的提示。
通过只重写Activity中的onBackPressed方法,实现2秒内按返回键两次退出应用程序。