나는 안드로이드를 개발하는 것을 처음으로 좋아한다. 이미지를로드하고 imageView에서 새로 고치는 스레드를 만드는 활동이 있습니다. 스레드는 "무한 루프"를 실행합니다. 작업이 중지되면 스레드를 중지하고 싶습니다. 아래 예제에서는 구현 한 것을 볼 수 있지만 예외가 발생하고 스레드가 계속 작동하거나 응용 프로그램이 다운됩니다. 어떤 제안?안드로이드 쓰레드 인터럽트 (활동 파괴가 작동하지 않을 때)
public class myActivity extends Activity{
Thread tr;
.... onCreate(){
bla bla bla
tr = new Thread();
tr.start();
}
.....onDestroy(){
tr.interupt();
}
bla bla bla
}
전체 코드를 작성하지 않아서 불편을 끼쳐 드려 죄송합니다. 현재 코드가있는 곳은 집이 아닙니다. 내가 그걸 멈추게하려면 어떻게해야합니까?
나는 public static boolean을 설정하고 onDestroy를 false로 설정하는 또 다른 트릭을 시도했다.
스레드에서에게 "무한 루프"wokrs 등 :
public static Boolean is = true;
스레드 :
while (is == true)....
들의 OnDestroy :
is = false;
그래서,이 트릭, 루프 이후 스레드가 종료 될 때 스레드가 종료됩니까?
감사 남자 : 당신이 기억해야
한 가지 중요한 점은 항상
volatile
같은 다른 하나에 의해 하나 개의 스레드에 의해 수정 및 읽기 변수를 설정하는 코드를 깨는에서 변수 캐싱과 같은 최적화를 방지하는 것입니다. 그러나 두 번째 접근법을 사용할 수없는 경우가 있습니다. 어떻게 스레드를 멈출까요? – Panos항상 두 번째 방법을 사용해야한다고 생각합니다. 왜 당신은 첫 번째 접근 방식을 취하지 말았어야하는지에 대한보다 명확한 그림을 얻기 위해 스레드의 자바 문서를 살펴볼 수 있습니다. 그리고 나는 첫 번째 접근법으로하려고하는 모든 것이 무엇이든간에 두 번째 접근법으로도 수행 될 수 있다고 생각한다. –