2010-04-22 3 views
4

나는 다음과 같은 질문을 가지고있다.Android : 회복 활동 내가 집을 누를 때

서비스가 API에서 데이터를 다운로드하는 동안 진행률 표시 줄을 보여주는 활동이 있습니다. 홈을 눌러서 내 프로그램을 다시 실행하고 호출 된 첫 번째 활동이 아니지만 스택에있는 경우 진행 상황을 계속 표시하기 위해 복구해야합니다.

나는 활동의 순환주기에 대해 읽었지만 명확한 해결책을 찾지 못했습니다.

동일한 일이 발생합니다. 진행률 표시 줄을 보여주는 활동에 있고 다른 활동으로 이동하는 버튼을 누르면 다시 돌아올 때 이전 활동을 복구 할 수 있습니까?

누구나 나를 도와 줄 수 있습니까?

감사합니다.

답변

3

문제는 홈 버튼을 누르면 전체 활동 스택이 지워진다는 것입니다. 즉, 활동으로 돌아갈 가능성이 없다는 것을 의미합니다. 활동이 계속 존재하는지 여부는 확실하지 않습니다.

계속 진행중인 사용자에게 흥미로운 진행 상황이라면 진행이 끝날 때까지 알림 표시 줄 아이콘을 표시 할 수 있습니다. 알림 바를 클릭하는 특별한 의도를 지정하고 활동과 함께이 인 텐트를 필터링 할 수 있다고 생각합니다. 그렇게하면 활동으로 돌아갈 수 있습니다. 하지만 여전히 작업이 저장되고 작업을 수행하는 백그라운드 스레드에 대한 참조가없는 문제에 직면합니다.

활동이 스택을 떠난 경우 finish 메소드가 호출됩니다. 나중에이 활동을 재사용해서는 안됩니다. 가장 좋은 방법은 활동의 전체 상태를 저장하고 나중에 복원 할 수있는 방법을 생각하는 것입니다. 작업을 수행하는 백그라운드 스레드에 대한 참조를 복원하려면 application 클래스를 서브 클래스 화하고 서브 클래스에서 실행중인 태스크에 대한 참조를 저장할 수 있습니다.

+0

서비스가 데이터를 보내고 있기 때문에 활동이 계속 존재하므로 복구가 가능해야한다고 생각합니다. – xger86x

+0

서비스가 완료되고 가비지 수집기가 활동을 정리할 때까지 활동이 존재합니다. – Janusz

+0

그래도 서비스가 실행되는 동안 내 응용 프로그램을 다시 실행하면 해당 스택의 인스턴스를 가져갈 수 있습니까? – xger86x

관련 문제