마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

runOnUiThread 질문드립니다.

0 추천

구글지도에 라인과 마커를 그리는 함수가 LineDB() 입니다.

라인과 마커가 너무 광범위해서 그리는데 속도가 너무 오래걸려 progress dialog 와 쓰레드를 이용해 표현하고 싶습니다.


		Thread ProgressDialogThread = new Thread() {
			
			@Override
			public void run() {
				
				try {
					
					runOnUiThread(new Runnable() {
						
						@Override
						public void run() {

							LineDB(1);

							if (transDialog != null && transDialog.isShowing()) {
								mHandler.sendEmptyMessage(0);
							}
						}
					});
					
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		};
		
		ProgressDialogThread.start();
		

		
		mHandler = new Handler(){

			@Override
			public void handleMessage(Message msg) {

				transDialog.dismiss();

			}
		};

위 코드대로하면 LineDB(1);  을 호출하는동안 화면이 검은색으로 나옵니다.

고수님들에 조언부탁드립니다 ㅠㅠ

 

 

커피한잔하고하자 (360 포인트) 님이 2014년 11월 12일 질문

2개의 답변

0 추천
시간이 오래 걸리는 작업을 메인스레드에서 하니 화면이 검게 나오는 겁니다.
익명사용자 님이 2014년 11월 12일 답변
0 추천

스레드에 스레드가 있어서 그러네요,

 

LineDB만 스레드돌리시구요

 

 ProgressDialog  xml이나 코드에서 생성하셔서 

 

스레드 시작시 p.show(); 하시고 스레드 돌리시구요

스레드종료 핸들러에서서 p.dismiss(); 하세요.

님이 2014년 11월 12일 답변
...