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

1개 액티비티 위에서 동작하는 2개 Fragment

0 추천

안녕하세요 수업만 듣던 학부생 3학년입니다

이번에 처음으로 제데로된 앱을 구상하고 만들어보고 있는데 

질문을 위해 여기까지 찾아오게 되었습니다 

 

질문하고 싶은 내용은 액티비티 위에서 동작하는 화면전체를 차지하는 (경쟁) fragment에 

구분 또는 focus를 가지는 걸 알아내는 방법입니다 중간에 몇개 질문을 번호로 붙여 하게되는데

능력자 선배님들 혹시 좋은 생각이나 방법을 아시면 답변 부탁드립니다!!

 

이 앱에 배경지식으로 제가 mqtt통신을 하려는데 Connect 상태를 처음엔 서비스를 이용한 백그라운드로

작동하려다 액티비티도 2개뿐이라  Main과 Detail이 전환될경우 각각 disconnect를 하고 다시 connect를 하는 방법을 하려고 했는데요 DetailActivity에서 connect하고 메소드를 사용하는데서 방법을 찾지못하고 해메고 있습니다.

앱을 켜면 처음 MainActivity가 동작하고 거기에서 선택되면

DetailActivity가 동작하는데 동시에 두개에 Fragment 중 선택된 하나가 앱화면에 나옵니다

그리고 fragment에서 동작 중 버튼을 클릭되면 다른 fragment로 화면상에서 전환되기도 하구요

여기서 DetailActivity에서 connect를 하고 fragment에서 메소드를 사용하려니 그것도 직관적으로 안되고

다른 방법을 찾아 적용해야하고 현재는 fragment에서 connect와 메소드를 바로 사용하려고 하다가

막혔습니다. 생명주기로 이해가 되지 않는 부분이 있는데요 

이부분입니다..

보기쉽게 표현하면 

MainActivity  -> DetailActivity

                 and -> RelayFragment 

                 and -> RCYUNFragment

인데 앱화면에서는 

MainActivity -> RelayFragment or RCYUNFragment  입니다

그런데 제 예상과 다르게 DetailAct와 두 Frag가 동일한 생명주기를 가지더라구요 (물론 액티비티 위에 두개의 프레그먼트가 얹어지는 거지만)

여기서 질문드리고 싶습니다..

1. 앱화면에서 두 프레그먼트가 전환되어도 onPause 라거나 (override 로 모두 print만들어둠) onStop() 등등 작동하지 않고 전환되는데 원리 랄까.. 상태에 대해서 설명을 조금 부탁드립니다. 

(일단 두개다 메인 focus를 가진상태로  VISIBLE 또는 GONE으로 안보이고 보이고 차이라는데 보이고 안보이고인 상태를 각 fragment 코드상에서 이벤트 메소드를 만들어 그때에 맞게 처리할수 있는 방법이 있을까요??)

2. 두 화면에서 각각 다른 connect을 해야 하는건 아니고 mqtt 프로토콜로 하나에 브로커로 연결을 하지만 각 fragment에 따라서 다른 Topic만 가지면 되기때문에 하나의 connect여도 되는데 fragment가 아닌 두개의 뿌리인 DetailActivity에서 하는게 나을까요...

3. 만약 2번에서 DetailActivity에서 Connect의 방법을 한다면 DetailActivity 위에 각 fragment에서 DetailActivity 에 생성된 통신 객체를 불러와서 사용할수 있는 방법을 추천해주실수 있나요??

 

크게 3가지 질문이지만 사실 통합적으로 봐야되서 질문이 무거워 보이네요;;;

혹시나 조언을 해주실수 있는 개발자 분들 답변 부탁드립니다!! ㅠㅠ

따블이 (260 포인트) 님이 2017년 2월 2일 질문

1개의 답변

0 추천
1. 생명주기가 액티비티랑은 조금 다르게  호출 됩니다

현재 화면에 보여지고 있는지에 대한 여부는 검색하시면 코드 많아요

 

2,3. 서비스클래스 하나 만드셔서 거기서 통신하시면됩니다
익명사용자 님이 2017년 2월 2일 답변
...