마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

메인 activity 화면 구성 [closed]

0 추천
안녕하세요 현재 개발자를 꿈꾸고 있는 학생입니다.

현재 문제점이 생겼는데...ㅠ

이타이밍문제로 인한 문제때문에 진행이 안되고있습니다.

USB를 꽂으면 메인액티비티가 올라오면서 동작들을 하는것을 개발중에 있는데요...ㅠ

그리고 USB를 빼버리면....종료가되어야 하는데

지금 문제점이 메인액티비티가 올라오기전에 USB를 빼게되면

액티비티가 올라오기전에 종료가되어서 ㅇ여러가지 문제점들이 발생중에있습니다.

그래서 메인액티비티가 다올라온다음에 종료가되는방법으로 수정하려고하는데

메인액티비티가 올라온시점을 알수 있는 방법이있나 해서 고수님들에게 문의드립니다.....ㅠ

뭐...activity생명주기따져서 onresume끝에다가 뭐 변수하나넣어놔서 체크하는 방법말고

다른 방법이 있는지...아시면....알려주시면 정말 복받으시고 감사하겠습니다.

제발 고수님들의 은혜로운.....자비를...부탁드립니다...ㅠ
질문을 종료한 이유: 도저히 해결책을못찾아서 다른방법으로 해결함
계발새발 (400 포인트) 님이 2015년 10월 30일 질문
계발새발님이 2015년 11월 4일 closed

1개의 답변

+1 추천
질문에 대한 직관적인 답변만 드리자면..

액티비티 안의 View가 모두 로딩된 시점은 OnCreate의 끝 부분입니다.

OnResume은 그 다음에 실행되고 초기화 이외에 홈화면만 다녀와도 보이는 갱신 지점입니다.

이론적으로 OnCreate가 시작만 했다고 하더라도, 액티비티를 종료하는 finish함수는 정상 작동합니다

종료를 어떻게 시키시는지요?

 

..몇자 더 적어보자면..

올라온다는 개념이 모호합니다. View가 모두 로딩되는 시점은 OnCreate끝부분입니다.

구조를 조금 더 알려주셔야 정확한 답변이 가능할 것 같습니다.

USB를 장착하고 빼는 것을 감지하는 코드가 앱에 있는 기능인지, 앱 이외에서 앱을 조종하는 기능인지..

설명해주신 내용만으론 USB 장착/해제시에 메인액티비티 상태를 조정하는 부분이 앱 이외의 부분인 것 같습니다.. 이부분도 중요하구요..

"올라오기?" 전에종료가 되어 발생하는 문제는 무엇인지..

 

올라온다는 개념의 정의와 문제.. 좀 더 자세한 상황을 알려주세요.
Andromer (1,360 포인트) 님이 2015년 10월 31일 답변
답변 감사합니다^^
현재 USB Intent중에 ATTACH와 DETTACH를 사용하여,
ATTACH를 받으면 실행하고 DETTACH를 받으면 종료하도록 로직이 구성되어있습니다.

그런데 여기서 문제점은 ATTACH를 받아 실행을 하려는데 view가 올라오기전(화면구성이 되기전,oncreate를 타는도중이나 oncreate후 onresume을 하고있는 도중)에

USB를 빼버리면 DETTACH가 들어와 oncreate중에 finish()를 하게되어,

제대로 종료가 안되거나 아니면 다시 실행시에 앱이 멈춰버려서

ANR이 발생하거나 제대로 동작이 되질않습니다. 그래서 수정계획이

화면이 다보여지고난후에 USB상태 변수(boolean으로 true면 USB 꽂혀있는상태 false 면 USB가 빠져있는상태)로 true면 그냥 실행 false면 finish()를 수행하도록

수정하려고 합니다. 화면이 사용자의눈에 다보여졌을때를 알고싶어 이렇게 글남깁니다...ㅠ
...