blob: 5666b98c904532b37fdde6274fad8d16eeaa2595 [file] [log] [blame]
page.title=연결 상태 확인 모니터링
parent.title=배터리 수명 최적화
parent.link=index.html
trainingnavtop=true
previous.title=도킹 상태와 유형 확인 모니터링
previous.link=docking-monitoring.html
next.title=온디맨드로 브로드캐스트 수신기 조작
next.link=manifest-receivers.html
@jd:body
<div id="tb-wrapper">
<div id="tb">
<h2>강의 목표</h2>
<ol>
<li><a href="#DetermineConnection">인터넷에 연결되어 있는지 확인</a></li>
<li><a href="#DetermineType">인터넷 연결 유형 확인</a></li>
<li><a href="#MonitorChanges">연결 변경사항 모니터링</a></li>
</ol>
<h2>참고자료</h2>
<ul>
<li><a href="{@docRoot}guide/components/intents-filters.html">인텐트 인텐트 필터</a>
</ul>
</div>
</div>
<p>반복 알람과 백그라운드 서비스는 일반적으로 인터넷 리소스 캐시 데이터로부터 애플리케이션의 업데이트를 예약하거나 시간이 필요한 다운로드를 실행하는 사용됩니다. 하지만 인터넷에 연결되어 있지 않거나 연결이 매우 느려 다운로드를 완료하지 못한다면 업데이트 예약을 해도 소용이 없겠죠?</p>
<p>인터넷에 연결되었는지, 어떤 연결 방식인지를 확인하기 위하여 {@link android.net.ConnectivityManager}를 사용할 있습니다.</p>
<h2 id="DetermineConnection">인터넷에 연결되어 있는지 확인</h2>
<p>인터넷에 연결되어 있지 않는 경우 인터넷 리소스를 기반으로 업데이트 예약을 필요가 없습니다. 다음은 활성 네트워크를 쿼리하고 인터넷이 연결되어 있는지 확인하기 위한 {@link android.net.ConnectivityManager} 사용법을 보여줍니다.</p>
<pre>ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork.isConnectedOrConnecting();</pre>
<h2 id="DetermineType">인터넷 연결 유형 확인</h2>
<p>현재 사용할 있는 인터넷 연결 유형을 확인할 수도 있습니다.</p>
<p>연결은 모바일 데이터, WiMAZ, Wi-Fi 이더넷 연결을 통해 제공될 있습니다. 아래와 같이 활성 네트워크의 유형을 쿼리하면, 사용 가능한 대역폭에 따라 업데이트 빈도를 변경할 있습니다.</p>
<pre>boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;</pre>
<p>모바일 데이터 비용은 Wi-Fi보다 높은 경향이 있으므로, 모바일 연결인 경우 앱의 업데이트 빈도를 줄여야 합니다. 마찬가지로 Wi-Fi 연결되기까지 용량의 다운로드는 일시 중지해야 합니다.</p>
<p>업데이트를 비활성화한 경우, 인터넷 연결이 재개되면 업데이트를 다시 시작하기 위해 연결 변경사항을 알고 있는 것이 중요합니다.</p>
<h2 id="MonitorChanges">연결 변경사항 모니터링</h2>
<p>연결 정보가 변경될 때마다 {@link android.net.ConnectivityManager}는 {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}({@code "android.net.conn.CONNECTIVITY_CHANGE"}) 액션을 브로드캐스트합니다. 변경사항을 수신하거나 적절히 백그라운드 업데이트를 다시 시작 또는 일시 중지하기 위해 매니페스트에서 브로드캐스트 리시버를 등록할 수 있습니다.</p>
<pre>&lt;action android:name="android.net.conn.CONNECTIVITY_CHANGE"/></pre>
<p>연결 정보는 수시로 변경될 있습니다. 모바일과 Wi-Fi 간에 이동할 때마다 브로드캐스트가 실행됩니다. 따라서 업데이트나 다운로드를 일시 중지한 경우에만 브로드캐스트를 확인하는 것이 좋습니다. 업데이트를 시작하기 전이나 이전에 업데이트를 일시 중지했던 경우에만 확인하는 것으로 충분합니다.</p>
<p> 기술은 다음 강의에서 설명하는 매니페스트에서 선언한 브로드캐스트 리시버의 전환이 필요합니다.</p>