当前位置: 代码迷 >> Android >> Android初级教程_按两次回到键退出程序和长按返回键退出程序
  详细解决方案

Android初级教程_按两次回到键退出程序和长按返回键退出程序

热度:35   发布时间:2016-05-01 17:40:07.0
Android初级教程_按两次返回键退出程序和长按返回键退出程序

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

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






  相关解决方案