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

Socket.io 를 사용하고있는데, socket.on 함수가 여러 Activity에 존재해야할 경우?

0 추천
우선 MainActivity에서 Socket 객체를 생성하고, socket.on 함수를 작성하여 통신을 하면 잘 됩니다.

그런데 SubActivity 에서도 소켓 통신을 하고 싶을경우,

MainActivity의 Scoket 객체를 통해 우선 서버와 DisConnect 하고 SubActivity에서 다시 Socket 객체를

만들어서 통신을 하는게 옳은 방법인가요?

 

제가 한 방법은 Socket 객체를 전역변수로 만들어서 여러 Activity에서 불러와 사용하려 했습니다.

socket.on 함수는 필요한 Activity안에 정의하였습니다.

그런데 문제는 1번 Activity에서 2번 Activity로 넘어간 후에 다시 1번으로 돌아왔을때,

1번 Activity가 onCreate 함수부터 시작하게 되면, socket.on 함수가 2번 중복되는 효과가 생기더라구요.

전 socket.on 함수를 onCreate에 정의하였고, 만약 1번 Activity가 재사용된다면, onRestart로 들어오게끔

하려했지만, 내부적 메모리 문제인지 onCreate부터 시작하는 경우가 생기더라구요. 이러면 이벤트가

발생하면 socket.on 함수가 2번 실행이 되버립니다.... 이런 현상을 방지할수있는 방법이 없나요?
익명사용자 님이 2019년 1월 3일 질문

1개의 답변

0 추천
한 Socket을 여러 Activity에서 사용하길 원하신다면,

BaseActivity 만드셔서 그곳에서 public으로 Socket을 만드시고,

MainActivity랑 SubActivity는 BaseActivity를 extends로 불러 사용하시면 됩니다.
비뢰광 (7,400 포인트) 님이 2019년 1월 4일 답변
...