은 내가 응용 프로그램 시작시 시작하는 장기 실행 스레드가 : 그래서 유지 위이며,긴 실행중인 스레드 + 라이프 사이클
public class MyHelper extends Thread {
private AtomicBoolean mRun;
public void run() {
while (mRun.get()) {
...
}
}
}
public class App extends Application {
private MyHelper mHelper;
public void onCreate() {
mHelper = new MyHelper();
mHelper.start();
}
}
우리는 어떤 비록 안드로이드에서 신호를 "응용 프로그램 종료"하지 않습니다 내 앱이 백그라운드에서 영원히 돌아가고 있습니까? 스레드를 종료 할 때를 알 수있는 좋은 곳이 없습니다.
사용자가 스택의 마지막 활동을 팝하는 경우 (뒤로 버튼을 눌러서) 스레드가 여전히 대기 상태 일지라도 내 응용 프로그램 인스턴스가 파괴됩니까?
감사
여기 좀보세요 : http://stackoverflow.com/questions/680180/where-to-stop-destroy-threads-in-android-service-class – AlexS
좋은 링크, 우리는 여전히 우리가 응용 프로그램이 "종료"되기를 원할 때 신호를받지 못하므로 스레드를 종료하는 방법을 알 수 없습니다. 한 사용자는 Thread.setDaemon (true)을 설정하도록 권장합니다. 그렇게 할 수있는 유일한 방법 인 것처럼 보이지만 약간 해킹 된 것처럼 보입니다. 다행히도 앱이 백그라운드로 작동 할 때 스레드에서 어떤 작업도하지 않고 있지만, 스레드가 일시 중단되고 앱이 살아 있어야한다는 신호로 작동하므로 OS가 앱을 종료 할 수 없다는 점만 걱정됩니다. ? – user291701