안드로이드 개발 질문/답변
(글 수 45,052)
Thread를 이용하여 UI를 자동 변경하려고 합니다.
그런데 일정 시간 동작하고 나면자동으로 Threa가 kill이 일어나서 동작이 되지 않고 있네요.
Handler를 이용해서도 해 보고 runOnUiThread를 이용해 보기도 했습니다.
다른 클래스의 ESA란 함수에서 계산된 값을 불러와서 주기적으로 Pgrgress를 변경시킬려고 합니다.
============== 작성 코드 ======================
new Thread(new Runnable(){
public void run() {
while(true){
runOnUiThread(new Runnable(){
public void run() {
SpecESA0.setProgress(mavenESAvalu0);
SpecESA1.setProgress(mavenESAvalu1);
SpecESA2.setProgress(mavenESAvalu2);
SpecESA3.setProgress(mavenESAvalu3);
SpecESA4.setProgress(mavenESAvalu4);
SpecESA5.setProgress(mavenESAvalu5);
SpecESA6.setProgress(mavenESAvalu6);
SpecESA7.setProgress(mavenESAvalu7);
SpecESA8.setProgress(mavenESAvalu8);
SpecESA9.setProgress(mavenESAvalu9);
}
});
SystemClock.sleep(200);
SpecJni.ESA();
}
}
}).start();
===================================================================
다른 클래스의 함수 호출을 잘못한건지 SpecJni.ESA();를 실행시켜 놓으면 잘 동작되다가
일정 시간 후에 만들어진 thread가 죽습니다.
죽이고 싶을 때는 안 죽고요.
어떻게 해야 Thread가 안 죽을지 도움 요청 드리겠습니다.
그런데 일정 시간 동작하고 나면자동으로 Threa가 kill이 일어나서 동작이 되지 않고 있네요.
Handler를 이용해서도 해 보고 runOnUiThread를 이용해 보기도 했습니다.
다른 클래스의 ESA란 함수에서 계산된 값을 불러와서 주기적으로 Pgrgress를 변경시킬려고 합니다.
============== 작성 코드 ======================
new Thread(new Runnable(){
public void run() {
while(true){
runOnUiThread(new Runnable(){
public void run() {
SpecESA0.setProgress(mavenESAvalu0);
SpecESA1.setProgress(mavenESAvalu1);
SpecESA2.setProgress(mavenESAvalu2);
SpecESA3.setProgress(mavenESAvalu3);
SpecESA4.setProgress(mavenESAvalu4);
SpecESA5.setProgress(mavenESAvalu5);
SpecESA6.setProgress(mavenESAvalu6);
SpecESA7.setProgress(mavenESAvalu7);
SpecESA8.setProgress(mavenESAvalu8);
SpecESA9.setProgress(mavenESAvalu9);
}
});
SystemClock.sleep(200);
SpecJni.ESA();
}
}
}).start();
===================================================================
다른 클래스의 함수 호출을 잘못한건지 SpecJni.ESA();를 실행시켜 놓으면 잘 동작되다가
일정 시간 후에 만들어진 thread가 죽습니다.
죽이고 싶을 때는 안 죽고요.
어떻게 해야 Thread가 안 죽을지 도움 요청 드리겠습니다.