Community

샘플소스의 getChannelList 를 타이머로 지속적으로 호출시 앱 종료됨

안녕하세요?

샘플소스의 getChannelList 를 타이머로 지속적으로 호출시
앱이 종료됩니다.

타이머는 3초 간격으로 해놨습니다.
채널 목록을 자동으로 새로고침하기 위하여 타이머를 이용했는데.

1~2분정도 지나면 항상 앱이 죽네요.
WebSocket IO 쪽에서 too many files opened …라고 로그가 뜨면서…

안녕하세요.

샘플소스의 getChannelList는 채널을 얻어오는 일련의 과정을 모두 포함한 코드로
서비스 로직에 그대로 사용하시면 문제가 생깁니다.
-> close 없이 새로운 remon을 계속 생성함

Docs페이지를 확인하시면 fetchCall(), fetchCast() 통해 목록을 얻어 오시는것을 확인하실 수 있습니다.
https://docs.remotemonster.com/common/channel#communication
를 확인해주세요.

샘플소스에서 적용시

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    ...

    mTimer = new Timer();
    mTimer.schedule(new fetchTimer(), 3000, 3000);  // <- 간이방법으로 remon의 onInit이 떨어져서 확실히 만들어졌을때 하는 방법이 정확함.
}
class fetchTimer extends TimerTask {
    @Override
    public void run() {
        runOnUiThread(() -> {
            mRoomList.clear();
            if (remonType == 0 || remonType == 3) {
                remonCall.fetchCalls();
            } else {
                remonCast.fetchCasts();
            }
        });
    }
}

감사합니다.