2013-10-23 2 views
0

해고 된 onStop 메소드를 지연시킬 수 있는지 알고 계십니까?ANDROID : onStop을 지연시킬 수 있습니까?

onStop() 메서드를 재정의하고 있으며 super.onStop()을 호출하기 전에 작은 지연을 추가하려고합니다.

(나는 표면 holder-으로보기 -dialog를 표시하고 내가 활동을 닫을 때, 뷰가 여전히 볼 수있는 활동을 - 1S 같은 것을 - 홈 화면이나 이전의 활동이 이미 표시되어있는 동안)

저는 액티비티를 닫는 방법이 여러 가지가 있습니다. 각 방법마다 동작을 구현하고 싶지 않습니다. onStop()에 넣어두면 좋은 생각입니다.

미리 감사드립니다. G.

+0

왜이 지연을 원하십니까? 오히려 사용자 경험 관점에서 볼 때 나에게 소리가납니다. 서피스 홀더가있는 대화 상자를 더 빨리 사라지게 할 수 있습니다. 문제를 재현 할 수있는 몇 가지 예제 코드를 제공해 주시겠습니까? –

답변

-1

이것은 단지 추측이며 완전히 시도되지 않았지만 Thread.sleep(1000)super.onStop() 전에 호출 할 수 없습니까?

+1

그것은 ** onStop 메소드에서해야하는 ** **이 아닙니다. –

+0

충분하게, 그것은 단지 추측이었다 : P –

0

아니요, 불가능합니다.

1) 응용 프로그램 응답 없음 오류를 발생시키지 않으면 서 UI 스레드 메서드에서 몇 밀리 초 이상 반환을 지연 할 수 없습니다.

2) 반환하기 전에 수퍼 클래스 메서드를 호출해야합니다. 그렇게하지 않으면 일반적으로 오류가 발생합니다.

UI 메서드를 사용한 후 지연된 시간에 문제가 발생하게하려면 타이머를 시작해야합니다. 그러나 onStop()은 Activity가 가시성을 잃었을 때 호출되기 때문에 나중에 코드를 실행하더라도 아무 내용이 보이지 않게됩니다. 또한 onStop()은 onDestroy()로가는 도중에 호출 될 수 있습니다. 나중에 파괴가 호출되기 전에 호출되는 경우 (보장 할 수는 없습니다). 따라서 타이머 지연 코드가 실행되지 않을 수도 있습니다.

+0

나는 그것이 정확하지 않기를 바란다. Android의 적절한 시간에 대한 정의는 얼마나 오래 적절한 지 연구해야합니다. 안드로이드가 다소 관대해야하는 UI 호출이 있다면, 그것은 onStop이다. 왜냐하면 그것이 앱의 마지막 기회이기 때문에 그들이 무엇이든 상관없이 보존했음을 확신 할 수 있기 때문이다. onStop에서 불가능하거나 불가능한 것에 대한 증거가 있습니까? – ToolmakerSteve

+0

허용되는 시간은 Android의 기록 및 구성을 통해 다양하지만 UI 스레드 메소드가 즉시 반환되어야한다는 것은 절대적으로 규칙입니다. –

관련 문제