Android

[16일차] 구조화 2

openDatabase 2016. 8. 8. 11:30

NetoworkManager


Network에서 데이터를 가져와서 넘겨주는 역할을 담당하는 Model class.



디자인 패턴은 singleton으로 !


보통 데이터를 얻어오는 애들은 Manager라고 한다. 



Singleton으로 대개 만든다. 


멀티스레드 환경에서 동시에 접근할 수 있기 때문에 이걸 쓴다. 



성능 이슈 때문에 if(instance ==null) 을 바깥에 한번 더 해준다. 


객체가 생성 되있을 때는 그냥 통과하게 만들어야 함으로 if 문을 한번 더 넣는다. 



Thread 이슈

Retry

일시적으로 연결이 안됬을 때, 다시시도하는 걸 보낸다. 

Cancel

캔슬 처리 Retry 나 이런건 라이브러리를 쓸거기 때문에 안한다. 

캔슬처리를 안해주면 화면을 갱신하는 액티비티가 죽어서 Exception 이 난다. 

Cancel처리는 중요하다 얘가 예외가 발생하는데 Dialog를 띄우려면 Activity가 finish 상태이면 안된다. 

코드를 띄우면 문제가 된다. 그래서 끝날때, 더이상  띄우지말라는 cancel처리를 해줘야한다. 

재현이 안되지만 발생하는 상황에서 에러이다.