SlideShare a Scribd company logo
Application & Network Status
요구 사항 1. Application에 대해 알아보자~
Application
Application도 Class로 정의할 수 있습니다.
그런데 어떨 때에 사용이 될까요?
Application 구현 및 용도
Base class for those who need to maintain global application state.
You can provide your own implementation by specifying its name in your
AndroidManifest.xml's <application> tag, which will cause that class to be
instantiated for you when the process for your application/package is created.
Application은 Application이 초기화되는 최초에 한 번 호출이 되며 1개의
Instance가 생성되어 유지되는 클래스 입니다. 우리는 이를 활용해서, Application
범위에서 관리가 필요한 항목을 초기화 및 관리가 가능합니다.
초기화는 Application.onCreate에서 진행이 될 수 있습니다.
그렇지만, onTerminate는 에뮬레이터 환경에서만 발생되며, 실 장비에서는
발생이 되지 않습니다. 이 점에 대해서 주의를 해서 자원 관리를 해야 합니다.
Application & Singleton
가만히 보면, Singleton들을 대해서 Application에 등록해서 관리를 하면
편하게 할 수 있을 것 같다. 그렇지만, 이에 대해서 android는 reference에서
다음과 같이 이야기 하며, Application을 Singleton 구성에 사용은
하지 않는 것을 권장하고 있다.
There is normally no need to subclass Application.
In most situation, static singletons can provide the same functionality
in a more modular way. If your singleton needs a global context
(for example to register broadcast receivers), the function to retrieve it can
be given a Context which internally uses Context.getApplicationContext()
when first constructing the singleton.
그래도 Application을 써보자.
지금부터 보는 코드 구조는 권장되지 않습니다. 본 코드 구조는 Application을
활용하는 예제를 보는 차원에서 작성이 된 점을 유념 바랍니다.
네트워크 모니터링용
유틸성 클래스를 global하게
한 개를 사용하기 위해,
Application에 등록합니다.
요구 사항 2. Network 상태를 감지해내자.
NetworkInfo 가져오기
네트워크 인터페이스에 대한 정보를 NetworkInfo로 추출합니다.
그리고 해당 객체에서 우리가 원하는 세부 네트워크 상태를 추출할 수 있습니다.
네트워크 연결 상태에 대해서~
1. 상세 정보: NetworkInfo.getDetailedState()
2. 조금은 단순화된 상태: NetworkInfo.getState()
대부분 경우에 본 함수를 통해서 우리는 원하는 상태를 얻을 수 있습니다.
3. 우린 이걸 더 단순화해서
연결 상태를 안정/불안정/끊김
으로 정의를 하고자 합니다.
단순화 해서 상태를 정리하자.
화면에 Toast로 상태를 확인하자
.
실제 환경에서는 버튼 클릭이 아닌 특정 상황들에서 네트워크 상황을
확인하고 그에 따른 추가적인 흐름이 진행되게 할 것입니다.

More Related Content

PDF
Agile Spirit Base On The Book "Agile Samuari"
PDF
Wot(daliworks) 20131113
PDF
Uml intro 1
PDF
Uml intro 0
PDF
15 content provider
PPTX
Context
PPTX
Golang Project Guide from A to Z: From Feature Development to Enterprise Appl...
Agile Spirit Base On The Book "Agile Samuari"
Wot(daliworks) 20131113
Uml intro 1
Uml intro 0
15 content provider
Context
Golang Project Guide from A to Z: From Feature Development to Enterprise Appl...

Similar to 21 application and_network_status (20)

PPTX
Android Network
PPTX
04 안드로이드 응용프로그램의 구조
PDF
[1A5]효율적인안드로이드앱개발
PPTX
Android 기초강좌 애플리캐이션 구조
PDF
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
PPTX
안드로이드 오픈소스 어플리케이션 블록
PDF
[강의자료]+1시간만에+끝나는+직장인+코딩+용어+해설_ver1.2.pdf
PDF
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
PDF
11st Legacy Application의 Spring Cloud 기반 MicroServices로 전환 개발 사례
PDF
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
PPT
U engine social bpm 프로세스 코디 - process codi
PDF
서버학개론(백엔드 서버 개발자를 위한)
PPTX
Open source engineering
PPTX
open api seminar
PPTX
Open source engineering - 0.1
PDF
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
PDF
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
PPTX
Jurano강의 lec4 android_annotations_application
PPTX
안드로이드App개발 10.activity데이터송수신 thread
PDF
구글 인박스 히드라 프로그래밍
Android Network
04 안드로이드 응용프로그램의 구조
[1A5]효율적인안드로이드앱개발
Android 기초강좌 애플리캐이션 구조
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
안드로이드 오픈소스 어플리케이션 블록
[강의자료]+1시간만에+끝나는+직장인+코딩+용어+해설_ver1.2.pdf
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
11st Legacy Application의 Spring Cloud 기반 MicroServices로 전환 개발 사례
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
U engine social bpm 프로세스 코디 - process codi
서버학개론(백엔드 서버 개발자를 위한)
Open source engineering
open api seminar
Open source engineering - 0.1
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
Jurano강의 lec4 android_annotations_application
안드로이드App개발 10.activity데이터송수신 thread
구글 인박스 히드라 프로그래밍
Ad

More from 운용 최 (20)

PDF
NIPA SW Insight Report '13.08
PDF
20 handler and_async_task
PDF
18 안드로이드 리스트뷰_속도향상
PDF
19 나만의 view 만들기
PDF
17 adapter view & db
PDF
16 데이터 저장과 사용
PDF
14 broad castreceiver
PDF
13 service 좀더
PDF
12 service
PDF
11 tablet 대응 가이드
PDF
10 view orientation_change
PDF
09 android keyboard & layout
PDF
08 fragment 태블릿 대응
PDF
08 font size
PDF
07 다양한 device_대응_방법
PDF
06 activity stack and back, flag
PDF
05 pending intent
PDF
04 activity간에 호출하기 & intent
PDF
03 activity.finish
PDF
02 activity.lifecycle
NIPA SW Insight Report '13.08
20 handler and_async_task
18 안드로이드 리스트뷰_속도향상
19 나만의 view 만들기
17 adapter view & db
16 데이터 저장과 사용
14 broad castreceiver
13 service 좀더
12 service
11 tablet 대응 가이드
10 view orientation_change
09 android keyboard & layout
08 fragment 태블릿 대응
08 font size
07 다양한 device_대응_방법
06 activity stack and back, flag
05 pending intent
04 activity간에 호출하기 & intent
03 activity.finish
02 activity.lifecycle
Ad

21 application and_network_status

  • 2. 요구 사항 1. Application에 대해 알아보자~
  • 3. Application Application도 Class로 정의할 수 있습니다. 그런데 어떨 때에 사용이 될까요?
  • 4. Application 구현 및 용도 Base class for those who need to maintain global application state. You can provide your own implementation by specifying its name in your AndroidManifest.xml's <application> tag, which will cause that class to be instantiated for you when the process for your application/package is created. Application은 Application이 초기화되는 최초에 한 번 호출이 되며 1개의 Instance가 생성되어 유지되는 클래스 입니다. 우리는 이를 활용해서, Application 범위에서 관리가 필요한 항목을 초기화 및 관리가 가능합니다. 초기화는 Application.onCreate에서 진행이 될 수 있습니다. 그렇지만, onTerminate는 에뮬레이터 환경에서만 발생되며, 실 장비에서는 발생이 되지 않습니다. 이 점에 대해서 주의를 해서 자원 관리를 해야 합니다.
  • 5. Application & Singleton 가만히 보면, Singleton들을 대해서 Application에 등록해서 관리를 하면 편하게 할 수 있을 것 같다. 그렇지만, 이에 대해서 android는 reference에서 다음과 같이 이야기 하며, Application을 Singleton 구성에 사용은 하지 않는 것을 권장하고 있다. There is normally no need to subclass Application. In most situation, static singletons can provide the same functionality in a more modular way. If your singleton needs a global context (for example to register broadcast receivers), the function to retrieve it can be given a Context which internally uses Context.getApplicationContext() when first constructing the singleton.
  • 6. 그래도 Application을 써보자. 지금부터 보는 코드 구조는 권장되지 않습니다. 본 코드 구조는 Application을 활용하는 예제를 보는 차원에서 작성이 된 점을 유념 바랍니다. 네트워크 모니터링용 유틸성 클래스를 global하게 한 개를 사용하기 위해, Application에 등록합니다.
  • 7. 요구 사항 2. Network 상태를 감지해내자.
  • 8. NetworkInfo 가져오기 네트워크 인터페이스에 대한 정보를 NetworkInfo로 추출합니다. 그리고 해당 객체에서 우리가 원하는 세부 네트워크 상태를 추출할 수 있습니다.
  • 9. 네트워크 연결 상태에 대해서~ 1. 상세 정보: NetworkInfo.getDetailedState() 2. 조금은 단순화된 상태: NetworkInfo.getState() 대부분 경우에 본 함수를 통해서 우리는 원하는 상태를 얻을 수 있습니다. 3. 우린 이걸 더 단순화해서 연결 상태를 안정/불안정/끊김 으로 정의를 하고자 합니다.
  • 10. 단순화 해서 상태를 정리하자.
  • 11. 화면에 Toast로 상태를 확인하자 . 실제 환경에서는 버튼 클릭이 아닌 특정 상황들에서 네트워크 상황을 확인하고 그에 따른 추가적인 흐름이 진행되게 할 것입니다.