안녕하세요.
	 
	게임을 하던 중에 화면을 끄게되면 onStop()에서 멈출 줄 알았는데 바로 onDestroy()로 넘어가더라고요...
	화면을 껐다가 켜도 계속할 수 있어야 하는데 
	다시 화면을 키면 애러가 나면서 꺼지게 됩니다.
	어떻게 해결해야 하나요..?? 감사합니다
public class StartGame extends Activity {
	ButtonEventC be;
	ProgressBarC pc;
	private static String String_key = "scotext";
	int time = 0;
	int score = 0;
	boolean start = false;
	ImageButton leftBtn[] = new ImageButton[3];
	ImageButton rightBtn[] = new ImageButton[3];
	TextView sco;
	ImageButton pause;
	Dialog dialog;
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.start_game);
		Log.i("onCreat", "It's onCreat");
		init();
		getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
		
		sco = (TextView) findViewById(R.id.scoreText);
		if (savedInstanceState != null) {
			Bundle map = savedInstanceState.getBundle(String_key);
			if (map != null) {
				sco.setText(map.getString("String_text"));
				pc.progress.setProgress(map.getInt("Time"));
			}
		}
		
		new Thread(new Runnable() {
			@Override
			public void run() {
				try {
					handler.sendEmptyMessage(3);
					Thread.sleep(1000);
					dialog.cancel();
					handler.sendEmptyMessage(2);
					Thread.sleep(1000);
					dialog.cancel();
					handler.sendEmptyMessage(1);
					Thread.sleep(1000);
					dialog.cancel();
				} catch (InterruptedException e) {
					android.util.Log.e("ErrorTag", "", e);
				}
			}
		}).start();
		new Handler().postDelayed(new Runnable() {
			@Override
			public void run() {
				be.nextMission();
				pc.start();
			}
		}, 3000);
		
		
		pause = (ImageButton)findViewById(R.id.pauseb);
		pause.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				pc.isRun = false;
				pause.setImageResource(R.drawable.stopbp);
				final Dialog dialog = new Dialog(StartGame.this);
				dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
				dialog.getWindow().setBackgroundDrawable(
						new ColorDrawable(android.graphics.Color.TRANSPARENT));
				dialog.setContentView(R.layout.pause_dialog);
				dialog.setCanceledOnTouchOutside(false);
				dialog.setCancelable(false);
				ImageButton restart = (ImageButton) dialog.findViewById(R.id.restart);
				restart.setOnClickListener(new OnClickListener() {
					@Override
					public void onClick(View v) {
						pc.isRun = true;
						pause.setImageResource(R.drawable.pauseb);
						dialog.cancel();
						
					}
				});
				ImageButton stop = (ImageButton) dialog.findViewById(R.id.stopgame);
				stop.setOnClickListener(new OnClickListener() {
					@Override
					public void onClick(View v) {
						
						pc.is = false;
						dialog.cancel();
						finish();
					}
				});
				
				dialog.show();
				
			}
		});
		
	}
	@Override
	public void onSaveInstanceState(Bundle outState) {
		outState.putBundle(String_key, saveState());
	}
	public Bundle saveState() {
		Bundle map = new Bundle();
		map.putString("String_text", String.valueOf(sco.getText()));
		pc.isRun = false;
		map.putInt("Time", pc.getTime());
		return map;
	}
	protected Handler handler = new Handler() {
		@Override
		public void handleMessage(Message msg) {
			dialog = new Dialog(StartGame.this);
			dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
			dialog.getWindow().setBackgroundDrawable(
					new ColorDrawable(android.graphics.Color.TRANSPARENT));
			dialog.setContentView(R.layout.countdown);
			ImageView iv;
			iv = (ImageView) dialog.findViewById(R.id.countDownIv);
			iv.setImageResource(R.drawable.threee);
			dialog.setCanceledOnTouchOutside(false);
			dialog.setCancelable(false);
			super.handleMessage(msg);
			switch (msg.what) {
			case 3:
				iv = (ImageView) dialog.findViewById(R.id.countDownIv);
				iv.setImageResource(R.drawable.threee);
				dialog.show();
				break;
			case 2:
				iv = (ImageView) dialog.findViewById(R.id.countDownIv);
				iv.setImageResource(R.drawable.twoo);
				dialog.show();
				break;
			case 1:
				iv = (ImageView) dialog.findViewById(R.id.countDownIv);
				iv.setImageResource(R.drawable.onee);
				dialog.show();
				break;
			}
		}
	};
	private void init() {
		be = new ButtonEventC(this);
		pc = new ProgressBarC(this);
		leftBtn[0] = (ImageButton) findViewById(R.id.ImageButton1);
		leftBtn[1] = (ImageButton) findViewById(R.id.ImageButton2);
		leftBtn[2] = (ImageButton) findViewById(R.id.ImageButton3);
		rightBtn[0] = (ImageButton) findViewById(R.id.ImageButton4);
		rightBtn[1] = (ImageButton) findViewById(R.id.ImageButton5);
		rightBtn[2] = (ImageButton) findViewById(R.id.ImageButton6);
		sco = (TextView)findViewById(R.id.scoreText);
		Typeface myNewFace = Typeface.createFromAsset(getAssets(), "Station.ttf");
		sco.setTypeface(myNewFace);
		for (int i = 0; i < 3; i++) {
			leftBtn[i].setOnClickListener(be);
			rightBtn[i].setOnClickListener(be);
		}
		
	}
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		switch (keyCode) {
		case KeyEvent.KEYCODE_BACK:
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}
	@Override
	protected void onPause() {
		super.onPause();
		time = pc.getTime();
		pc.isRun = false;
		start = true;
		if (dialog != null) {
			if (dialog.isShowing()) {
				dialog.dismiss();
			}
		}		
		Log.i("onPause", "It's onPause");
	}
	@Override
	protected void onRestart() {
		super.onRestart();
		Log.i("onRestart", "It's onRestart");
		pc.isRun = true;
		be.score.setText(String.valueOf(score));		
	}
	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();		
		Log.i("onResume", "It's onResume");
		
		if(start){
		pc.isRun = false;
		pause.setImageResource(R.drawable.stopbp);
		final Dialog dialog = new Dialog(StartGame.this);
		dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
		dialog.getWindow().setBackgroundDrawable(
				new ColorDrawable(android.graphics.Color.TRANSPARENT));
		dialog.setContentView(R.layout.pause_dialog);
		dialog.setCanceledOnTouchOutside(false);
		dialog.setCancelable(false);
		ImageButton restart = (ImageButton) dialog.findViewById(R.id.restart);
		restart.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				pc.isRun = true;
				pause.setImageResource(R.drawable.pauseb);
				dialog.cancel();
				
			}
		});
		ImageButton stop = (ImageButton) dialog.findViewById(R.id.stopgame);
		stop.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				pc.is = false;
				dialog.cancel();
				finish();
			}
		});
		
		dialog.show();
		}
	}
	
	@Override
	protected void onStop() {
		super.onStop();
		Log.i("onStop", "It's onStop");
		
	}
	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		Log.i("onDestroy", "It's onDestroy");
		
	}
	
}