나는 안드로이드 카메라에서 얻은 라이브 프레임을 작업 중입니다. 나는 모든 프레임을 다룰 수는 없지만, 할 때, 나는 스레드를 생성하여 UI 스레드를 응답하게 유지한다. 문제는이 새로운 스레드 내에서 어떤 점에서 서버를 업데이트하여 Asynctask
을 시작한다는 것입니다.AsyncTask oddity
설명서에 따르면 Asynctasks
은 UI 스레드에 의해 시작되어야합니다. 그래서 runOnUiThread
을 사용하여 시작합니다. 문서에 따르면 어떤 일이 일어나는지는 내가 활동을 변경하거나 구성을 변경하면 활동이 다시 시작되고 작업이 사라지고 데이터베이스 응답이 서버 테이블에 저장되지 않는다는 것입니다. 나는 궁금해서 작업자 스레드에서 Asynctasks
을 시작하려고 노력했다. 활동이 변경 되더라도 서버 응답을받습니다. 흥미로운 점은 내 UI 스레드가 1이고 작업자 스레드가 2 인 경우 서버의 응답 처리가 1이 아니라 2에서 발생한다는 것입니다. 스레드 2가 완료 되었기 때문에 더 많은 또는 덜 이해할 수 있으므로 asynctask가 스레드 1,하지만 난 정말 왜이 스레드는 여전히 다른 활동에있어 실행중인 이유 모르겠어? 아무도 무슨 일이 일어 났는지 압니까?
이 효과가 매우 유용한 것처럼 보일지라도 사용하는 것은 좋지 않습니다. 그러나 나는 왜 그것이이 방법으로 작동하는지에 대해 궁금합니다.
이것을 확인하십시오. 도움이 될만한 http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html – Raghunandan
'Handler'가 순환 전 또는 다른 설정 변경 전에'Message'를 수신하면, 여러분의 메세지는 'onPause' 전에 실행되면, 나중에 Message를받는다면, 새로운 Activity가 생성 된 후에 실행됩니다. 변경을 처리하고 그것을 새로운'Activity'에 첨부하기 만하면됩니다. – vamsiampolu
감사합니다. Raghunandan, 나는 머리가없는'Fragments'에 대해 이미 알고 있으며, 전송되지 않은 것을 정기적으로 확인하기 때문에 연결을 유지할 필요가 절대적으로 필요하지 않습니다. 나는 완전히 다른 'Activity'에 있어도 서버 응답을 어떻게 처리 할 수 있는지 이해하고 싶습니다. – Dude