동영상 로딩중일때 뒤로가기를 하여 어플을 종료시키면 ANR에러가 뜹니다

동영상 완료되고나서는 뒤로가기를 하여도 정상종료가 됩니다.

와이파이를 이용했을때도 괜찮습니다

3G를 이용하여 동영상을 로딩할때 뒤로가기를 하면 ANR에러가 뜹니다

소스 첨부하겠습니다.


CouncilMediaController 은 사용자클래스입니다 mediaController 을 상속받았습니다.

 	private VideoView mVideoViewCouncil; 
	private CouncilMediaController mMediaController;
	private void initVideoView() {
		if (DEBUG)
			Log.d(TAG, "initVideoView");		
		setmIsPlaying(false);
		this.mMediaController = new CouncilMediaController(this);
		this.mMediaController.setMediaPlayer(mVideoViewCouncil);
		this.mMediaController.setAnchorView(mVideoViewCouncil);
		this.mVideoViewCouncil.setMediaController(mMediaController);
	}




동영상재생시작부분입니다 

 private void onPlayMedia(final String url, final String time) {
		if (DEBUG)
			Log.d(TAG, "onPlayMedia(" + url + ", " + time + ")");		
		mProgressBarVodLoading.setVisibility(ProgressBar.VISIBLE);
		mVideoViewCouncil.setVisibility(VideoView.VISIBLE);
		if (this.mLinearLayoutVideoViewCouncil.getVisibility() == LinearLayout.GONE) {
			this.mLinearLayoutVideoViewCouncil
					.setVisibility(LinearLayout.VISIBLE);
		}
		Uri videoUri = Uri.parse(url);
		this.mVideoViewCouncil.setVideoURI(videoUri);
		this.mVideoViewCouncil.requestFocus();
		long curtime = JUtil.TimeConvert(time);
		if (curtime == -1) {
			Toast.makeText(this, R.string.IncorrectPlay, Toast.LENGTH_SHORT)
					.show();
		}
		if (curtime != 0)
			this.mVideoViewCouncil.seekTo((int) curtime);		
		
		new Thread(new Runnable() {
			public void run() {
				Log.d(TAG, "1");
				mVideoViewCouncil.start();
				Log.d(TAG, "2");
				mVideoViewCouncil.setOnPreparedListener(new OnPreparedListener() {
					public void onPrepared(MediaPlayer mp) {
						if (DEBUG)
							Log.d(TAG, "setOnPreparedListener");
						mProgressBarVodLoading.setVisibility(ProgressBar.GONE);
						setmIsPlaying(true);
						Configuration config = getResources().getConfiguration();
						if(config.orientation == Configuration.ORIENTATION_LANDSCAPE)
							setLandscape();
						getPlayTimeProcess();
					}
				});
			}
		}).start();
	}



동영상 정지부분입니다.여기에도 쓰레드가 있는데 주석처리된부분을 풀고 실행하니 ANR에러가 뜨진않지만 쓰레드에러가 떠서

일단 주석처리하였습니다.

 private boolean onPauseMedia() {
		Log.d(TAG, "onpauseMedia()");
		if (this.mVideoViewCouncil == null
				|| this.mLinearLayoutVideoViewCouncil == null)
			return false;
		if (this.mLinearLayoutVideoViewCouncil.getVisibility() == LinearLayout.VISIBLE) {
			this.mLinearLayoutVideoViewCouncil.setVisibility(LinearLayout.GONE);
		}
//		if (this.mVideoViewCouncil.canPause()) {
			this.mVideoViewCouncil.pause();
//		}
		new Thread(new Runnable(){
			public void run(){
//				mVideoViewCouncil.stopPlayback();	
//				mVideoViewCouncil.setMediaController(null);				
			}
		}).start();
		setmIsPlaying(false);
		return true;
	}