码迷,mamicode.com
首页 > 移动开发 > 详细

Android_按两次返回键退出程序和长按返回键退出程序

时间:2016-05-03 10:41:51      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:

以上两个功能主要是参考了一下博客的:

http://blog.csdn.net/chenshijun0101/article/details/7682210

http://blog.csdn.net/winlinking/article/details/6596455

 

方法一:

按两次返回键退出程序:

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();
}
}
}

 
   

辅助类Exit.java

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;
}

 
   

长按返回键退出程序:

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);

}

 
   

方法二:

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(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();

exitTime = System.currentTimeMillis();

} else {

finish();

System.exit(0);

}

return true;

}

return super.onKeyDown(keyCode, event);

}

 
   

Android_按两次返回键退出程序和长按返回键退出程序

标签:

原文地址:http://www.cnblogs.com/nanze/p/5454040.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!