1 분마다 실행되는 하나의 스레드가있는 안드로이드 응용 프로그램이 있습니다. 내 문제는, 하나의 버튼을 클릭하면 앱을 리셋해야한다는 것입니다. 즉, 신선한 앱이 될 것입니다. 이제 버튼을 클릭하면 모든 데이터베이스와 공유 환경 설정이 지워집니다. 하지만 스레드가 다시 시작됩니다.안드로이드에서 슬립 모드에서 하나의 스레드를 죽이기
지금은 완성/죽은) 스레드가이
1
을 의미 살아 있지 않으면 당신에게 비슈누1 분마다 실행되는 하나의 스레드가있는 안드로이드 응용 프로그램이 있습니다. 내 문제는, 하나의 버튼을 클릭하면 앱을 리셋해야한다는 것입니다. 즉, 신선한 앱이 될 것입니다. 이제 버튼을 클릭하면 모든 데이터베이스와 공유 환경 설정이 지워집니다. 하지만 스레드가 다시 시작됩니다.안드로이드에서 슬립 모드에서 하나의 스레드를 죽이기
지금은 완성/죽은) 스레드가이
1
을 의미 살아 있지 않으면 당신에게 비슈누감사이
if (killthread.isAlive()) {
killthread.interrupt();
}else {
// Here what'll i do, I mean how to kill that thread, which in sleep mode.
}
처럼 사용하고 있습니다. 아무것도 할 필요가 없습니다.
2) 새로 만들거나 아직 시작하지 않은 항목입니다. Thread.start()가 아직 호출되지 않았습니다. 이 경우 Thread.interrupt()는 아무 효과가 없습니다. 당신이 할 수있는 유일한 일은 사용자 정의 로직입니다 - 더 이상 필요하지 않은 쓰래드를 시작할 코드를 알리십시오.
답장을 보내 주셔서 감사합니다. 여기 버튼을 클릭하면 else 부분이 나타납니다.하지만 1 분 후에 스레드가 시작됩니다. 단계에서 어떻게 멈추게할까요? – amtest
처음에는 문제가 더 복잡해 보입니다. 그럼에도 불구하고 내 업데이 트를보고, 그것이 hepls 희망 –
답장을 보내 주셔서 감사합니다. 그 버튼을 클릭하면 다른 사람에게 올 것입니다. 1 분 후에 실이 시작됩니다. 무대에서 멈추는 방법은?
스레드 자체와 관련이 있습니다. 제 생각에는 인터럽트를 무시하도록 코드를 작성했기 때문입니다.
좋아요, 다음은 댓글의 코드입니다.
public void run() {
while (true) {
try {
Thread.sleep(60000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
}
}
}
이것은 스레드가 중단 될 때 발생하는 예외를 catch하고 자동으로 무시하는 것입니다. 계속 진행하십시오.
인터럽트를 멈추고 싶다면 ...이게되어야합니다.
public void run() {
while (true) {
try {
Thread.sleep(60000);
} catch (InterruptedException e) {
return;
}
}
}
나는 'android'에 익숙하지 않지만 자바에서는 다른 트레드를 기다릴 때'join'을 사용할 수 있습니다. –
@ ZagorulkinDmitry - 예. 할 수 있습니다. 그러나 그가 스레드를 기다릴 필요가 있다는 것은 분명하지 않습니다. –