백그라운드에서 작동하는 스레드를 관리하는 적절한 방법은 무엇입니까?스레드 다루기
예를 들어, 여러 개의 스레드를 만드는 활동이 있습니다. 나는 다음을 수행해야합니다
1) 응용 프로그램이
이 파괴 될 때) 모든 스레드를 파괴 사용자가 활동
3에서 멀리 이동하면 활동 내에서 생성 된 스레드를 일시 정지) 활동이
내 마음에 와서 유일한 것은 t.destroy() 또는 위에 나열된 이벤트에서 비슷한 것을 발행 할 수 있도록 public으로 선언 된 모든 스레드 변수를 갖는 것입니다. 먼저, 이것이 올바른 방법인지 잘 모르겠습니다. 두 번째로, 내가 만든 모든 스레드를 참조 할 수 있도록 코드를 변경해야하기 때문에 마음에 들지 않습니다.
예를 들어, 내 Activity가 새 객체 (예 : LoadImages.class)를 인스턴스화하고 객체가로드 될 이미지 수에 따라 여러 스레드를 생성하는 상황이 있습니다. 스레드는 호출 활동에서 볼 수 없습니다.
그렇다면 호출 활동에 스레드 참조를 전달해야합니까? 아니면 특정 부모 활동이있는 스레드 만 파괴 할 수있는 방법이 있습니까? 나는 간단한 해결책이 있다고 생각 LoadingImages
를 들어
예. 당신 말이 맞아요. 1 단계는 필요 없습니다. 스레드를 파괴하는 것은 어떨까요? (LoadingImage에서) 작성된 각 스레드에 대한 참조를 유지하여 릴리스에서 파기 또는 중지 할 수 있도록합니까? – bobetko
음, 대개 여러분은'AsyncTask'를 사용하고'task.cancel (false)'를 호출해야합니다. 'Thread'는 멈추기위한 좋은 인터페이스를 드러내지 않습니다. http://developer.android.com/reference/java/lang/Thread.html#destroy()를 참조하십시오. –
AsyncTask로가는 것은 취소 방법을 제공하므로 가장 좋은 방법 인 것 같습니다. 내 코드를 수정하고 클래스를로드하는 새로운 방법을 추가하고 모든 것이 잘 작동합니다. – bobetko