AndEngine pause event

1.press menu key
/**
	 * 按键事件
	 */
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		// TODO Auto-generated method stub
		if(keyCode == KeyEvent.KEYCODE_BACK){//返回上一界面,并且将所有数据初始化
			try {
				mGameStart = 9;//游戏结束
			} catch (Exception e) {
			}
			
			return false;
			
		}
		
		if(keyCode == KeyEvent.KEYCODE_MENU && event.getAction() == KeyEvent.ACTION_DOWN) {
			GamePause();

			return true;
		}
		
		return super.onKeyDown(keyCode, event);
	}

2.来电时暂停
class GamePauseThread extends Thread implements Runnable{		
		@Override
		public void run() {	
			boolean start = true;
			boolean tmp = true;
			while(start){
				try {
					switch (tmpTelephonyManager.getCallState()) {
					case TelephonyManager.CALL_STATE_RINGING:
						if(tmp){
							GamePause1();
							tmp = false;
						}
						break;
					case TelephonyManager.CALL_STATE_IDLE:
						if(!tmp){
							GamePause2();
							tmp = true;
							start = false;
							mGameStart = tmpGameStart;
						}
						break;
					case TelephonyManager.CALL_STATE_OFFHOOK:
						if(!tmp){
							GamePause2();
							tmp = true;
							start = false;
							mGameStart = tmpGameStart;
						}
						break;
					default:
						break;
					}
					
					
					Thread.sleep(80);//游戏休息80ms
				} catch (Exception e) {
					// TODO: handle exception
				}
			}
			
		}
		
		
		
		
	}


GamePauseThread gamePauseRun;
        gamePauseRun = new GamePauseThread();
gamePauseRun.run();
        gamePauseRun.interrupt();

你可能感兴趣的:(AndEngine)