2012-11-15 4 views
0

두 개의 웹 서비스가 있으며 스레드에 의해 백그라운드에서 실행 중입니다. 네트워크 장애가 발생하면 네트워크 연결을 자주 확인하고 있습니다. "재 동기화"버튼이있는 대화 상자가 나타납니다.백그라운드에서 실행중인 안드로이드에서 스레드를 중지하고 시작하는 방법

내 의도는 RESYNC 버튼을 클릭 할 때 완료되지 않은 스레드를 다시 시작해야 할 때입니다.

나는 thread.interupt()를 사용하여 스레드를 중지하고 thread.start가 다시 시작됩니다.

이 스레드가 이미 실행중인 것처럼 오류가 발생하지 않습니다.

어느 하나가 스레드를 중지하고 다시 시작하는 방법을 알려주십시오.

감사합니다.

+0

:

당신은 휘발성 플래그를 사용할 수 있습니다. 새로운 질문을하기 전에 조사를하십시오. –

답변

1

스레드를 다시 시작할 수 없습니다. 스레드를 다시 시작할 수 없습니다.이 스레드를 중지하려면 stop();

다시 시작하려면 스레드의 새 인스턴스를 만든 다음 시작을 호출해야합니다.

0

run() 메소드에서 잠시 (조건) 사용하십시오. while 루프 안에는 스레드가 실행되는 동안 수행 할 작업이 있습니다. 스레드의 setter 메소드로 조건 변수의 값을 false로 변경하십시오. java의 stop() 메소드는 더 이상 사용되지 않습니다.

2

thread.stop()을 사용하여 스레드를 종료하지 마십시오. 이 주제에 대한 많은 질문이 있습니다

private volatile boolean running = true; 

public void stop() { 
    running = false; 
} 

public void run() { 
    while(running) { 
    // your code 
    } 
} 
관련 문제