• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1page.title=연결 상태 확인 및 모니터링
2parent.title=배터리 수명 최적화
3parent.link=index.html
4
5trainingnavtop=true
6
7previous.title=도킹 상태와 유형 확인 및 모니터링
8previous.link=docking-monitoring.html
9next.title=온디맨드로 브로드캐스트 수신기 조작
10next.link=manifest-receivers.html
11
12@jd:body
13
14<div id="tb-wrapper">
15<div id="tb">
16
17<h2>강의 목표</h2>
18<ol>
19  <li><a href="#DetermineConnection">인터넷에 연결되어 있는지 확인</a></li>
20  <li><a href="#DetermineType">인터넷 연결 유형 확인</a></li>
21  <li><a href="#MonitorChanges">연결 변경사항 모니터링</a></li>
22</ol>
23
24
25<h2>참고자료</h2>
26<ul>
27  <li><a href="{@docRoot}guide/components/intents-filters.html">인텐트 및 인텐트 필터</a>
28</ul>
29
30</div>
31</div>
32
33<p>반복 알람과 백그라운드 서비스는 일반적으로 인터넷 리소스 및 캐시 데이터로부터 애플리케이션의 업데이트를 예약하거나 긴 시간이 필요한 다운로드를 실행하는 데 사용됩니다. 하지만 인터넷에 연결되어 있지 않거나 연결이 매우 느려 다운로드를 완료하지 못한다면 업데이트 예약을 해도 소용이 없겠죠?</p>
34
35<p>인터넷에 연결되었는지, 어떤 연결 방식인지를 확인하기 위하여 {@link android.net.ConnectivityManager}를 사용할 수 있습니다.</p>
36
37
38<h2 id="DetermineConnection">인터넷에 연결되어 있는지 확인</h2>
39
40<p>인터넷에 연결되어 있지 않는 경우 인터넷 리소스를 기반으로 한 업데이트 예약을 할 필요가 없습니다. 다음은 활성 네트워크를 쿼리하고 인터넷이 연결되어 있는지 확인하기 위한 {@link android.net.ConnectivityManager} 사용법을 보여줍니다.</p>
41
42<pre>ConnectivityManager cm =
43        (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
44
45NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
46boolean isConnected = activeNetwork.isConnectedOrConnecting();</pre>
47
48
49<h2 id="DetermineType">인터넷 연결 유형 확인</h2>
50
51<p>현재 사용할 수 있는 인터넷 연결 유형을 확인할 수도 있습니다.</p>
52
53<p>연결은 모바일 데이터, WiMAZ, Wi-Fi 및 이더넷 연결을 통해 제공될 수 있습니다. 아래와 같이 활성 네트워크의 유형을 쿼리하면, 사용 가능한 대역폭에 따라 업데이트 빈도를 변경할 수 있습니다.</p>
54
55<pre>boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;</pre>
56
57<p>모바일 데이터 비용은 Wi-Fi보다 높은 경향이 있으므로, 모바일 연결인 경우 앱의 업데이트 빈도를 줄여야 합니다. 마찬가지로 Wi-Fi로 연결되기까지 큰 용량의 다운로드는 일시 중지해야 합니다.</p>
58
59<p>업데이트를 비활성화한 경우, 인터넷 연결이 재개되면 업데이트를 다시 시작하기 위해 연결 변경사항을 알고 있는 것이 중요합니다.</p>
60
61
62<h2 id="MonitorChanges">연결 변경사항 모니터링</h2>
63
64<p>연결 정보가 변경될 때마다 {@link android.net.ConnectivityManager}는 {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}({@code "android.net.conn.CONNECTIVITY_CHANGE"}) 액션을 브로드캐스트합니다. 변경사항을 수신하거나 적절히 백그라운드 업데이트를 다시 시작 또는 일시 중지하기 위해 매니페스트에서 브로드캐스트 리시버를 등록할 수 있습니다.</p>
65
66<pre>&lt;action android:name="android.net.conn.CONNECTIVITY_CHANGE"/></pre>
67
68<p>연결 정보는 수시로 변경될 수 있습니다. 모바일과 Wi-Fi 간에 이동할 때마다 브로드캐스트가 실행됩니다. 따라서 업데이트나 다운로드를 일시 중지한 경우에만 브로드캐스트를 확인하는 것이 좋습니다. 업데이트를 시작하기 전이나 이전에 업데이트를 일시 중지했던 경우에만 확인하는 것으로 충분합니다.</p>
69
70<p>이 기술은 다음 강의에서 설명하는 매니페스트에서 선언한 브로드캐스트 리시버의 전환이 필요합니다.</p>
71